锁定屏幕后调用Android onCreate
这是Android操作系统的工作原理,它决定何时销毁您的视图。当您锁定手机时,您的应用会进入活动生命周期的暂停状态(onPause)。
当活动处于暂停状态,如果它需要大量的内存,Android系统已经干掉你的应用程序(的onStop)的权利。
所以它必须调用onCreate重新创建您的视图,当你解锁它。当后屏幕会返回你看到桌面上(的onDestroy()关闭应用程序)
当锁定屏幕时,它实际上进入'onPause',然后到'onStop'。 – TronicZomB 2013-05-01 14:35:33
我虽然我的意思是说你的应用程序进入暂停状态 – user2336315 2013-05-01 14:36:44
调用创建时系统要摧毁我的活动似乎不是很合乎逻辑... – user2224350 2013-05-01 14:39:04
的onDestroy()被调用。
屏幕之后又回来了,你看到你的应用程序的第一个布局/视图,然后这就是所谓的onStop()和的onCreate()。
后,屏幕又回来了,你看到屏幕前的相同观点得好快的onPause()和onResume()被调用。
对于我来说,我
android:configChanges="orientation"
但这并没有帮助,因为我的活动是全屏,所以我在活动标签
添加
android:configChanges="keyboardHidden|orientation|screenSize"
正如上文Handling the Configuration Change Yourself
如果y我们的应用程序不需要在特定配置更改期间更新资源,并且您有一个性能限制,要求您避免重新启动活动,然后您可以声明您的活动处理配置更改本身,从而防止系统重新启动活动。
这种情况如果活动是风景模式和锁定屏幕是由用户启用。
可以有这背后有两个原因:
如果任何类型的锁屏启用并活动在风景模式: 如果设备在人像模式中,锁定屏幕时,该设备已被锁定它会自动切换到肖像模式(即使您的活动处于风景模式)。当设备解锁时,您的活动变得可见,但它仍然从肖像(锁定时)转换到横向,因此活动将被销毁并重新创建。
这是Android操作系统是如何工作的,它决定何时摧毁你的看法。当您锁定手机时,您的应用会进入活动生命周期的暂停状态(onPause)。 当活动处于暂停状态时,如果需要大量内存,则系统有权终止您的应用(onStop,然后是onDestroy)。所以当你解锁它时,系统调用(onCreate)来重新创建你的视图。
解决方案:
- 你应该仔细保存和使用
onSaveInstanceState()
或 - 使用
android:configChanges="orientation|screenSize"
中体现你的活动标签检查状态。
当屏幕方向发生变化时,会调用onCreate,当屏幕尺寸发生变化时,将调用Android的更高版本。很难说没有发布任何代码或XML,为什么会发生这种情况。要停止在我的一些应用程序中调用onCreate',我在屏幕方向或大小改变时调用了'android:configChanges =“keyboardHidden | orientation | screenSize”'来调用我不想调用'onCreate'的活动。 – HeatfanJohn 2013-05-01 14:35:37
+1 Downvoters应该添加一条评论,提供关于如何改善问题时的重要反馈,当downvoting时。 – HeatfanJohn 2013-05-01 14:37:35