locking屏幕后调用Android onCreate

当我的应用程序在“顶部”运行时locking屏幕时,系统几乎立即调用onCreate(屏幕仍为黑色)。 这个破坏行为的原因是什么?

  • 在onPause中保存活动状态
  • 如何恢复通知而不重新创建活动?
  • 我可以在oncreate方法之外使用setContentView吗?
  • Android - 活动构造与onCreate
  • android中的OnCreate方法是什么?
  • 在super.onCreate上添加内容错误之前,必须调用requestFeature()
  • java.lang.NoSuchMethodError:没有静态方法setOnApplyWindowInsetsListener
  • 从Activity的onCreate访问片段视图
  • 对我来说,我已经

     android:configChanges="orientation" 

    但这并没有帮助,因为我的活动是全屏幕,所以我补充说

     android:configChanges="keyboardHidden|orientation|screenSize" 

    在活动标签中

    如处理configuration改变你自己所述

    如果您的应用程序在特定的configuration更改期间不需要更新资源,并且您的性能限制要求您避免重新启动活动,则可以声明您的活动处理configuration更改本身,从而防止系统重新启动活动。

    这是Android操作系统的工作原理,它决定何时销毁您的视图。 当您locking手机时,您的应用将进入活动生命周期的暂停状态(onPause)。

    当一个活动处于暂停状态,如果需要大量的内存,Android系统有权杀死你的应用程序(onStop)。

    所以它必须调用onCreate来重新创build你的视图,当你解锁它。

    onDestroy()是在屏幕回退之后调用的时候看到桌面(onDestroy()closures的应用程序)。

    屏幕回来后,你看到你的应用程序的第一个布局/视图,然后它被称为onStop()和onCreate()。

    屏幕回来后,在屏幕消失之前看到相同的视图,则调用onPause()和onResume()。

    如果“活动”处于“风景”模式并且“用户locking”屏幕处于启

    这背后有两个原因:

    1. 如果启用了任何types的locking屏幕,并且活动处于横向模式:如果设备在纵向模式下locking屏幕,当设备locking时,它会自动切换到纵向模式(即使您的活动处于横向模式)。 当设备解锁时,您的活动变得可见,但它又从肖像(locking时)转换到横向,因此活动将被销毁并重新创build。

    2. 这是Android操作系统的工作原理,它决定何时销毁您的视图。 当您locking手机时,您的应用将进入活动生命周期的暂停状态(onPause)。 当一个活动暂停状态,如果它需要大量的内存,系统有权杀死你的应用程序(onStop然后onDestroy)。 所以当你解锁它时,系统调用(onCreate)来重新创build你的视图。

    解:

    1. 您应该仔细保存并使用onSaveInstanceState()或检查状态
    2. 在清单中使用android:configChanges="orientation|screenSize"作为您的活动标签。