当我按下我的Droid的睡眠按钮时,我的活动的oncreate被调用。为什么会发生这种情况?为什么操作系统希望在设备进入睡眠状态时调用OnCreate?有没有办法停止它,或者至少知道是因为手机进入睡眠状态?
这种情况特别发生在被锁定为横屏的活动中,例如在清单文件的活动标签内设置:
android:screenOrientation="portrait"
当你关闭屏幕时,它会读取加速度计以确定真实方向并在关闭前更改屏幕方向。
所以是的,简单的解决方案是添加configChanges,使其看起来像这样:
<activity
android:name=".MyActivity"
android:screenOrientation="landscape"
android:configChanges="orientation"
/>
你不需要指定screenOrientation,但如果你不这样做,启动时的方向将保持不变,除非你编写代码处理配置更改。
顺便提一下,当我开始在ICS上测试我的应用程序时,我必须处理一些活动开始时的创建/销毁/创建周期中存在的问题。需要一些额外的检查和平衡来使代码更通用。
android:configChanges="orientation|screenSize"
。从文档中可以看到:“注意:如果您的应用程序目标API级别为13或更高(由minSdkVersion和targetSdkVersion属性声明),则还应该声明“ screenSize”配置,因为在设备在纵向和横向方向之间切换时,它也会发生变化。” - William Carter我遇到了和您一样的问题,我的应用程序(游戏)每当进入休眠状态后都会重新加载。
以下是我解决此问题所采取的步骤:
我添加了
<activity
android:configChanges="orientation|screenSize"
/>
希望这能帮助到某人!