Activity的七大生命周期

Activity生命周期图


1、当第一次调用一个Activity就会执行onCreate方法

2、当Activity处于可见状态的时候就会调用onStart方法

3、当Activity可以得到用户焦点的时候就会调用onResume方法

4、当Activity被遮挡住的时候就会调用onPause方法

5、当Activity处于不可见状态的时候就会调用onStop方法

6、当Activity没有被销毁的时候重新调用这个Activity就会调用onRestart方法

7、当Activity被销毁时会调用onDestory方法

实例:

首先新建两个Activity:MainActivity和SecondActivity,
MainActivity里点击按钮可打开SecondActivity,在两个Activity中分别加入七大生命周期的回调函数,
并在函数方法中添加log日志( Log.i("Activity名","方法名") ,例: Log.i(" MainActivity: ","onStart()")

接下来进行调试:
打开第一个MainActivity依次执行onCreate()->onStart()->onResume(),
MainActivity入栈。
 
打开第二个SecondActivity先执行MainActivity的onPause(),
再执行Second的onCreate()->onStart()->onResume(),
Second入栈,
最后执行MainActivity的onStop(),
此时Activity返回栈的栈顶为SecondActivity,
MainActivity被压入栈。
 
按下返回键,先执行SecondActivity的onPause(),
再执行MainActivity的onRestart()->onStart()->onResume(),
此时MainAcitivity回到栈顶,
待MainActivity重新回到栈顶并准备好与用户交互后,
SecondActivity才执行onStop()->onDestroy(),
此时SecondActivity()出栈。
 
在一个Activity交互时按下home键或打开任务面板时,
会执行该Activity的onPause()->onStop(),而不会执行onDestroy(),
当用户再此点开该程序后执行onRestart()->onStart()->onResume()恢复。

猜你喜欢

转载自blog.csdn.net/zhang1223665986/article/details/80608248