Activity 与 Fragment 生命周期

2019-06-11  本文已影响0人  莫库施勒
Activity Activity 与 Fragment

四种状态:

BACK键:

当我们按BACK键时,我们这个应用程序将结束,这时候我们将先后调用onPause()->onStop()->onDestory()三个方法。
再次启动App时,会执行onCreate()->onStart()->onResume()

HOME键:

按HOME的时候,Activity先后执行了onPause()->onStop()这两个方法,这时候应用程序并没有销毁。
而当我们从桌面再次启动应用程序时,则先后分别执行了onRestart()->onStart()->onResume()三个方法。

横竖屏切换时Activity的生命周期:

从竖屏--横屏:从当前界面依次会走onPuse()--onStop()--onDestory()--onCreate()--onStart()--onResume()。可以看出竖屏会销毁,横屏会重新创建。

onSaveInstanceState() 和 onRestoreInstanceState()

当应用遇到意外情况(如:内存不足、用户直接按Home键)由系统销毁一个Activity时,onSaveInstanceState() 会被调用。但是当用户主动去销毁一个Activity时,例如在应用中按返回键,onSaveInstanceState()就不会被调用。
通常onSaveInstanceState()只适合用于保存一些临时性的状态,而onPause()适合用于数据的持久化保存。

onSaveInstanceState()的调用将发生在onPause()或onStop()方法之前。(虽然测试时发现多数在onPause()前)

onRestoreInstanceState() 在 onStart() 和 onPostCreate(Bundle)之间调用。onPostCreate() 在 handleStartActivity() 时被调用

上一篇 下一篇

猜你喜欢

热点阅读