Android四大组件之一Activity的生命周期
首先我们从官网拿到下面这张图,这张图大家应该不陌生了,后面我们根据日志了解接下两个Activity之间的跳转,研究下Activity的生命周期
一、典型情况下生命周期(7个)
1、onCreate : 表示Activity正在被创建
2、onReStart : 表示Activity重新启动,正常情况下Activity从不可见变为可见状态时,会被调用
3、onStart : 表示Activity正在被启动,Activity已经可见了, 但是还没有出现在前台,无法和用户进行交互(可以理解为,其实已经可见了,只是我们看不见而已)
4、onResume : 表示Activity已经可见、且可以和用户进行交互了
5、onPause : 表示Activity正在停止,可见(不可执行耗时操作)
6、onStop : 表示Activity即将停止,不可见(不可执行耗时操作)
7、onDestroy : 表示Activity即将被销毁(可以进行资源的释放)
二、特殊情况下
那么从A_Activity启动,再从A_Activity跳转到B_Activity过程中,这两个的Activity的生命周期谁的会先执行呢?
A启动:
A_Activity的 -- onCreate -- onStart -- onResume
A跳转B(A调用finish):
A_Activity先调用onPause,然后就是B_Activity : onCreate --> onStart --> onResume,最后是A_Activity的 onStop -->(如果A_Activity调用的finish的话,就会接着触发onDestroy)
A跳转B(A不调用finish):
如果A_Activity不调用的finish的话,跳转到B_Activity,再从B_Activity返回呢?
先上图:
A_Activity不调用的finish的话,跳转到到B_Activity,A_Activity先调用onPause,然后就是B_Activity : onCreate --> onStart --> onResume,
B点击返回:
先是B_Activity的 onPause。 紧接着就是A_Activity的onRestart --》 onStart --> onResume,最后才是 B_Activity的onStop --> onDestroy
综上所述:
从前者跳转(返回)到后者,始终是先调用前者的 onPause,然后调用后者的 onCreate/onRestart --> onStart -- > onResume,最后调用前者的onStop --> onDestroy。
异常情况下呢?点击下方友情链接
网友评论