我希望我的 Android 应用仅实例化一次主屏幕 Activity 。我正在适本地管理后台堆栈以实现此目的,但刚刚在应用程序启动时发现了方向问题。
从视觉上看,这种方向变化只会在模拟器上显示出来。 (可能运行得太快而无法在设备上观察到)。
这是发生了什么::-->
activity.onCreate()
activity.onDestroy()
activity.onCreate()
这个序列是有道理的,是由方向的变化引起的。对我来说没有意义的是它发生了,因为我做了以下事情来防止方向改变::-->
AndroidManifest.xml 包含
android:screenOrientation="portrait"
对于我所有的 Activity 和主屏幕 Activity 的 onCreate() 方法,我正在调用
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
那么为什么我会改变方向?
最佳答案
在您的 list 文件中添加 android:screenOrientation="portrait"
,您可以像这样声明您的 Activity
<activity android:name=".yourActivity"
....
android:screenOrientation="portrait"/>
如果你想使用java代码 尝试
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
在您为 onCreate()
中的 Activity setContentView
之前
参见 here
关于android - 确保屏幕方向固定为纵向且永不更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12742364/