我的问题关于OnResume()
方法,这是活动的生命周期的一部分。
我知道在OnStart()
方法之后,OnResume()
将被调用,如果应用程序进入后台,然后再次出现在前面,OnResume()
将被执行,但是是否有一些操作系统可能在设备旋转时调用此方法或类似的东西,或者可能当他们将设备置于睡眠状态然后再次打开它?
我已经在一些设备上测试了它,当应用程序运行时旋转屏幕,看起来OnResume()
没有执行,但显然我不能测试所有的设备。
如果Activity
没有声明它想要自己处理配置更改(例如,在manifest中设置android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
),那么设备方向更改将导致以下情况:
onPause()
被称为onStop()
被称为onDestroy()
被调用(Activity
实例已经死亡)- 一个新的
Activity
实例被实例化 onCreate()
在新实例 上被调用onStart()
在新实例 上被调用onResume()
在新实例 上被调用
另外,当锁屏显示/解锁时,有些设备会导致Activity
进入onPause(), onResume()
循环。还有一些设备,即使没有改变设备的方向,当锁定屏幕显示/解锁时,也会经历方向变化周期。
根据Activity的生命周期。当Activity准备开始与用户交互时,系统调用OnResume。
当活动进入恢复状态时,它来到前台,然后系统调用回调。这是应用程序与用户交互的状态。应用程序一直保持这种状态,直到发生一些事情把焦点从应用程序转移开。这样的事件可能是,例如,接到一个电话,用户导航到另一个活动,或者设备屏幕关闭。
所以当设备旋转时,这将不会调用OnResume()
方法。
您可以参考Microsoft文档活动生命周期