【发布时间】:2015-03-25 23:16:09
【问题描述】:
我正在尝试强制我的应用中的所有活动处于纵向或横向模式,从而向用户公开设置。
基本上在 onCreate() 中,我以某种方式请求正确的方向
@Override
protected void onCreate(final Bundle savedInstanceState) {
setRequestedOrientation(SettingsHelper.getOrientation());
}
事实上,如果我们将设备保持在 portrait 模式并且请求的方向是 landscape 那么它只是在纵向模式下创建一个活动然后它在景观中重新创建它。在高端设备上这是可以接受的,因为它是瞬时的,但在低端设备上这是一场灾难,因为在创建和重新创建之间有 5 秒的延迟......
我已经尝试过的: - 不仅在 onCreate 中,在 onResume 中进行 - 在清单中定义 android:screenOrientation="nosensor" - 在清单中定义 android:screenOrientation="behind" - 在清单中定义 android:screenOrientation="unspecified" - 在清单中定义 android:configChanges="orientation"
你知道如何防止双重创建吗?
【问题讨论】:
-
@Szabolcs Becze:因为大多数人甚至不理解这个问题并想出了股票 configChanges 回复。 :-) 我认为您没有找到任何解决方案,因为几年后它仍然存在...stackoverflow.com/questions/56828044/…
标签: android android-activity screen-orientation