1.1 Activity的生命周期全面分析

1. 典型情况下生命周期分析

问题:

FirstActivity 启动 SecondActivity,请问是 SecondActivity 的 onResume 和FirstActivity 的 onPause 那个先执行?

答案从AMS中可以找到,测试如下

FirstActivity onPause
SecondActivity onCreate
SecondActivity onStart
SecondActivity onResume
FirstActivity onStop
  • SecondActivityonResume 发生在 FirstActivityonPause 之后, onStop 之前。
    由此可得,为了让下一个页面启动快,尽量不要再 onPause 做耗时操作。

2. 异常情况下生命周期分析

  • onSaveInstanceStateonPause的先后不确定
  • onSaveInstanceState执行在onStop之前
    异常情况分类:
    情况一:资源相关的系统配置发生改变导致Activity被杀死并重建
    情况二:资源内存不足导致低优先级的Activity被杀死

避免系统配置变化导致Activity重建的方法:
给在manifest中给Activity添加 android:configChanges属性, android:configChanges支持很多参数,具体参考文档。

android:configChanges="orientation|screenSize"

你可能感兴趣的:(1.1 Activity的生命周期全面分析)