Activity 与 Fragment 生命周期

Activity
Activity 与 Fragment

四种状态:

  • 正常情况下:依次会走Activity启动--onCreate()--onStart()--onResume()--Activity此时呈现在用户面前--当停掉Activity时会执行onPuse()--Activity不可见时执行onStop()--Activity被销毁时---onDestory()

  • Activity暂停之后, 用户又返回到Activity时:依次会执行onResume()--Activity此时呈现在用户面前--当停掉Activity时会执行onPuse()--Activity不可见时执行onStop()--Activity被销毁时---onDestory()

  • Activity长时间不可见,用户又重新导航到Activity:依次会执行onRestart()--onStart()--onResume()--Activity此时呈现在用户面前--当停掉Activity时会执行onPuse()--Activity不可见时执行onStop()--Activity被销毁时---onDestory()

  • Activity被释放掉后又重新导航回来:依次会执行onCreate()--onStart()--onResume()--Activity此时呈现在用户面前--当停掉Activity时会执行onPuse()--Activity不可见时执行onStop()--Activity被销毁时---onDestory()

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() 时被调用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。