1.1.1 Activity生命周期

生命周期注释

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()


生命周期图

1.1.1 Activity生命周期_第1张图片

github地址

你可能感兴趣的:(1.1.1 Activity生命周期)