Android Activity的生命周期和启动模式

本文详细探讨了Android Activity的生命周期,包括正常和异常情况下的状态转换,并重点解析了标准模式、单顶模式、单任务模式和单实例模式。此外,还介绍了Activity中的Flags及其作用,如FLAG_ACTIVITY_NEW_TASK和FLAG_ACTIVITY_SINGLE_TOP,以及IntentFilter的匹配规则。通过阅读,开发者能够更好地理解和掌握Activity的管理和交互机制。
摘要由CSDN通过智能技术生成

参考:
《Android开发艺术探索》

1. Activity 的正常生命周期

完整的activity生命周期如下所示

在这里插入图片描述

生命周期的几点注意事项:

  1. Activity 第一次启动:onCreate->onStart->onResume。
  2. Activity 切换到后台( 用户打开新的 Activity 或者切换到桌面) ,onPause->onStop(如果新 Activity 采用了透明主题,则当前 Activity 不会回调 onstop)。
  3. Activity 从后台到前台,重新可见,onRestart->onStart->onResume。
  4. 用户退出 Activity,onPause->onStop->onDestroy。
  5. onStart 开始到 onStop 之前,Activity 可见。onResume 到 onPause 之前,Activity 可以接受用户交互。
  6. 在新 Activity 启动之前,栈顶的 Activity 需要先 onPause 后,新 Activity 才能启动。所以不能在 onPause 执行耗时操作。
  7. onstop 和 ondestroy 不一定回调,例如直接kill掉app的情况,因为上衣activity的 onstop 的触发是在下一个activity的onresume 之后的。

2. Activity 异常情况生命周期

例如 Activity 处于竖屏状态,如果突然旋转屏幕,由于系统配置发生了改变,Activity 就会被销毁并重新创建。在异常情况下系统会在 onStop 之前调用 onSaveInstanceState 来保存状态。Activity 重新创建后,会在 onStart 之后调用 onRestoreInstanceState 来恢复之前保存的数据。


保存数据的流程:

  1. Activity 被意外终止,调用 onSaveIntanceState 保存数据
  2. Activity 委托 Window,Window 委托它上面的顶级容器一个 ViewGroup( 可能是 DecorView) ,然后顶层容器在通知所有子元素来保存数据。
  3. 委托的方法是 View 的 dispatchSaveInstanceState/dispatchRestoreInstanceState 和 onSaveIntanceState / onRestoreInstanceState ,这里和View 的分发机制非常相像,这种与 View-
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值