Android的四大组件之Activity生命周期详解

一、Two是普通的Activity,能够完全挡住One

1.One初始化的时候

onCreate(One)--> onStart(One)--> onResume(One)

 

2.当从One跳到 Two的时候

onPause(One) --> onCreate(Two) --> onStart(Two) -->onResume(Two) --> onStop(One)

 

3.按了back(返回),会销毁Two,重新显示One

onPause(Two) --> onRestart(One) --> onStart(One) -->onResume(One) --> onStop(Two) -->onDestroy(Two)

 

4.再按一次back(返回),会销毁One

onPause(One) --> onStop(One) --> onDestroy(One)

 

二、Three是对话框形式的Activity 或者  是透明的activity,不能完全挡住One

1.One初始化的时候

onCreate(One) --> onStart(One) -->onResume(One)

 

2.当从One跳到 Three的时候

onPause(One) --> onCreate(Three) -->onStart(Three) -->onResume(Three)

 

3.按了back(返回),会销毁Three,重新显示One

onPause(Three) --> onResume(One) -->onStop(Three) -->onDestroy(Three)

 

4.再按一次back(返回),会销毁One

onPause(One) --> onStop(One) -->onDestroy(One)

 

 

三、生命周期总结

1.一个activity的完整生命周期

onCreate(创建生命) --> onStart(完全可见)  --> onResume(获取焦点,开始跟用户进行交互)

                                              ↓如果要销毁了

onDestroy(失去生命) <-- onStop(完全不可见) <-- onPause(失去焦点,停止跟用户进行交互)

 

2.可见循环

onSatrt --> onResume --> onPause --> onStop --> onRestart --> onStart

 

3.焦点循环

onResume --> onPause --> onResume

 

4.当系统内存不足的时候,自己的activity可能会被系统自动销毁并回收,这时候系统就会调用onSaveInstanceState让用户保存临时数据,并把数据保存到Bundle outSate中。当重新创建activity的时候,就会将Bundle outSate传到onCreate

 

5.其实onSaveInstanceState只适合保存一些临时数据,保险起见,应该在onPause里面保存activity的状态

 

 

猜你喜欢

转载自blog.csdn.net/smach1991710/article/details/11364443