当Activity启动时,会调用
onCreate()
方法。在
onCreate()
方法中,您可以执行基本的启动逻辑,这些逻辑只应该在整个Activity的生命周期中发生一次。
在执行完
onCreate()
方法后,会调用
onStart()
方法。此方法使Activity成为可见状态,因为应用程序正在准备将其进入前台并变得与用户交互。
在执行完
onStart()
方法后,会调用
onResume()
方法。此方法仅在应用程序处于前台时才调用,因为在此状态下应用程序与用户进行交互。应用程序将保持恢复(或运行)状态,直到发生某些事件将焦点从应用程序中移开。
如果另一个Activity进入前台,则会调用
onPause()
方法。如果应用程序仍然可见,则暂停应用程序。此方法仅暂停Activity的操作,而不销毁Activity。Activity将保持暂停状态,直到Activity恢复或完全不可见为止。
4a. 如果用户返回到该Activity,则会再次调用
onResume()
方法。
4b. 如果具有更高优先级的应用程序需要内存,则可以从暂停状态杀死应用程序进程。如果用户需要在杀死应用程序后返回到应用程序,则会再次调用
onCreate()
方法。
如果Activity对用户不再可见,则会调用
onStop()
方法。当Activity停止时,Activity对象将保留在内存中,并且维护所有状态和信息,但未连接到窗口管理器。
5a. 如果用户返回到该Activity,则会调用
onRestart()
方法,然后再次调用
onStart()
方法。
5b. 如果具有更高优先级的应用程序需要内存,则可以从停止状态杀死应用程序进程。如果用户需要在杀死应用程序后返回到应用程序,则会再次调用
onCreate()
方法。
如果Activity正在完成或被系统销毁,则会调用
onDestroy()
方法。应用程序最初不会关闭。系统会调用此方法,因为Activity由于某人调用了
finish()
而完成,或者因为系统暂时销毁包含Activity的进程以节省空间。系统也可能在发生方向更改时调用此方法,然后立即调用
onCreate()
以在新方向中重新创建进程及其中包含的组件。
onDestroy()
方法释放所有尚未被之前的方法(如
onStop()
)释放的资源。
整个生命周期的活动发生在第一次调用onCreate()
到最后一次调用onDestroy()
之间。
可见生命周期的活动发生在调用onStart()
到调用onStop()
之间。
前台生命周期的活动发生在调用onResume()
到调用onPause()
之间。
我们必须实现的唯一方法是onCreate()
。其他方法会自动调用。但我们可以自己实现它们,告诉应用程序在这些过程中要做什么。
https://developer.android.com/guide/components/activities/activity-lifecycle.html#asem
onAttachedToWindow
在视图附加到窗口时被调用。此时它具有一个 Surface 并将开始绘制。
https://developer.android.com/reference/android/view/View.html#onAttachedToWindow()