本来没打算写这篇文章,毕竟网上讲解Activity生命周期的文章一搜一大把,没有什么可说的。但是因为最近开发的时候遇到一个因为生命周期的一个疏忽导致Service始终报android.os.DeadObjectException
错误,调试了半天才解决,总结下来还是生命周期不熟,这里在总结一下。
对于生命周期,一些很经典的图就足以说明了,比如下面这个
再比如这个
具体的Activity生命周期流转流程看这个图就可以了。这里总结几个要点:
- 一个Activity的启动顺序:
onCreate()——>onStart()——>onResume() - 当启动另一个Activity启动时:
第一个Activity onPause()——>第二个Activity onCreate()——>onStart()——>onResume()
——>第一个Activity onStop() - 当返回到第一个Activity时:
第二个Activity onPause() ——> 第一个Activity onRestart()——>onStart()——>onResume()
——>第二个Activity onStop()——>onDestroy()
在 B 退回 A过程中,执行过程是
B—onPause
A—onActivityResult
A—onRestart
A—onStart
A—onResume
B—onStop
B—onDestroy