生命周期注释
onCreate()
创建Activity调用,用于Activity的初始化,在Activity生命周期中只执行一次,适用于实例化对象
onStart()
Activity创建或者从后台重新回到前台时被调用
在屏幕上对用户可见
onRestart()
Activity从后台重新回到前台时被调用
onResume()
Activity创建或者从被覆盖、后台重新回到前台时被调用
Activity开始和用户交互的时候调用,这时该Activity是在Activity栈的顶部 获焦的时候
onWindowFocusChanged(boolean hasFocus)
Activity窗口获得或失去焦点时被调用,在onResume之后或onPause之后
onPause()
在系统准备去启动或者恢复另一个Activity的时候调用。
我们通常会在这个方法中将一些消耗CPU的资源释放掉,以及保存一些关键数据。这个方法的执行一定要快 不然影响切换页面时间
onStop()
退出当前Activity或者跳转到新Activity时被调用
Activity被停止或者Activity变成不可见时调用
onDestroy()
退出当前Activity时被调用,调用之后Activity就结束了
Activity被从内存中移除,一般发生在执行finish方法时或者Android回收内存的时候
onSaveInstanceState(Bundle outState)
屏幕方向改变时,Activity被销毁再重建;当前Activity处于后台,系统资源紧张将其杀死.
当跳转到其他Activity或者按Home键回到主屏时该方法也会被调用,系统是为了保存当前View组件的状态.
onRestoreInstanceState(Bundle savedInstanceState)
Activity被系统杀死后再重建时被调用.
例如:屏幕方向改变时,Activity被销毁再重建;当前Activity处于后台,系统资源紧张将其杀死,用户又启动该Activity.
这两种情况下onRestoreInstanceState都会被调用,在onStart()之后.
用例
启动A
-依次执行A.onCreate() > A.onStart() > A.onResume()
从A跳转到B
-依次执行A.onPause() > B.onCreate() > B.onStart() > B.onResume() > A.onStop()
从B返回A
-依次执行B.onPause() > A.onRestart() > A.onStart() > A.onResume() > B.onStop() > B.onDestroy()
退出A
-依次执行A.onPause() > A.onStop() > A.onDestroy()