跳到主要内容

Activity在屏幕旋转时的生命周期?

参考答案:

在Android系统中,当屏幕发生旋转时,Activity的生命周期会经历一系列的变化。具体来说,系统会销毁当前的Activity实例,并重新创建一个新的Activity实例。这意味着应用程序需要在销毁和重新创建之间保存和恢复其状态。

以下是Activity在屏幕旋转时的生命周期的详细过程:

  1. 当用户旋转屏幕时,当前的Activity实例会被销毁。
  2. 系统会调用Activity的onSaveInstanceState()方法,允许开发者保存Activity的当前状态到一个Bundle对象中。这个Bundle对象会在Activity重新创建时被传递给onCreate()onRestoreInstanceState()方法。
  3. 紧接着,系统会销毁当前的Activity实例。
  4. 系统会重新创建一个新的Activity实例,并调用其onCreate()方法。在这个方法中,开发者可以使用之前保存的Bundle对象来恢复Activity的状态。
  5. 在新的Activity实例创建完成后,系统会依次调用onStart()onResume()等方法,使Activity变得可见并可以响应用户的操作。

需要注意的是,如果开发者在onSaveInstanceState()方法中保存了状态,那么当Activity重新创建时,系统会优先调用onRestoreInstanceState()方法而不是onCreate()方法来恢复状态。因此,开发者需要在onRestoreInstanceState()方法中处理状态的恢复。

此外,开发者还可以通过重写onConfigurationChanged()方法来处理屏幕旋转的配置更改回调,以避免Activity的重新创建和状态的保存与恢复过程。但是需要注意的是,这种方法只适用于处理一些简单的配置更改,对于更复杂的场景(如屏幕方向的变化),仍然需要依赖系统自动处理Activity的销毁和重新创建过程。