Android开发无可避免的要对生命周期有一个完整的掌握,以前没时间整理,正好趁这过年无聊之际,整理一篇Activity的完整生命周期。
首先,先来了解一副图解
通过以上流程图,我们大概了解了Activity的基本所有周期的调用方法,现在,用一个Activity跳转的小实例来剖析Activity之间的跳转时方法调用顺序。
FirstActivity和SecondActivity的创建并带上基本的调用方法,用log输出来观察方法何时被调用的,情况如下:
1)在打开FirstActivity时依次执行onCreate()->onStart()->onResume(),
FirstActivity入栈;
2)再点击FirstActivity跳转到SecondActivity
此时先执行FirstActivity的onPause()方法,
再执行SecondActivity中的onCreate()->onStart()->onResume(),
SecondActivity入栈,
最后才会执行FirstActivity的onStop()方法,此时SecondActivity在栈顶;
3)而在Android手机上少不了的按键——返回键和home键
a、当按下返回键时:
先执行SecondActivity的onPause()方法,再执行FirstActivity的onRestart()->onStart()->onResume(),此时MainAcitivity回到栈顶;
当一切准备就绪后,SecondActivity执行onStop()->onDestroy(),
此时SecondActivity()出栈。
b、当按下home键时:
当按下home键时就已表示程序推入到后台了,此时会执行Activity的onPause()->onStop(),而不会执行onDestroy(),当用户再次从后台打开该程序后执行onRestart()->onStart()->onResume()恢复。