博客
关于我
各种典型场景下Activity的生命周期
阅读量:485 次
发布时间:2019-03-07

本文共 2120 字,大约阅读时间需要 7 分钟。

Activity在Android系统中的生命周期是一个复杂但重要的概念,了解它能够帮助开发者更好地管理应用程序的状态。以下从多个角度详细解析Activity的生命周期。

1. Activity正常启动

当一个Activity首次启动时,其生命周期会经历以下几个关键阶段:

  • onCreate:Activity被创建,这是最早被调用方法。开发者可以在这里初始化组件和布局。
  • onStart:Activity准备好显示给用户,这个方法会在Activity首次呈现给用户时被调用。
  • onResume:Activity进入可用状态,准备好处理用户输入和操作。

2. Activity启动另一个Activity

当一个Activity启动另一个Activity时,后台的Activity会暂停,新Activity则会进入前台。根据启动模式的不同,后台Activity的状态会有所差异:

(1)B完全遮挡住A

当B完全遮挡住A时,B的生命周期会与A存在交织:

  • A会暂停(onPause)
  • B开始创建(onCreate)
  • B开始运行(onStart)
  • B恢复状态(onResume)
  • A保存当前状态(onSaveInstanceState)
  • A停止运行(onStop)
  • A销毁(onDestroy)

如果在此状态下按返回键,B会暂停(onPause),A会重新启动(onRestart),然后A继续运行(onStart、onResume),随后B会停止并销毁(onStop、onDestroy)。如果A长时间处于后台被系统杀死,则会重新调用onCreate开始新一轮的生命周期。

(2)B没有完全遮挡住A(如对话框或半透明界面)

这种情况下,B的生命周期会部分覆盖A:

  • A暂停(onPause)
  • B创建(onCreate)
  • B启动(onStart)
  • B恢复(onResume)
  • A保存当前状态(onSaveInstanceState)

在这种模式下,按返回键会导致:

  • B暂停(onPause)
  • A恢复(onResume)
  • B停止并销毁(onStop、onDestroy)

如果是按Home键返回,则会:

  • B暂停(onPause)
  • A保存状态(onSaveInstanceState)
  • A停止(onStop)
  • B销毁(onDestroy)

如果再次切换到前台,A会重新启动(onRestart),接着继续其生命周期(onStart、onResume),B也会重新启动(onRestart、onStart、onResume)。

3. 按返回键退出到桌面或调用finish销毁

当用户按返回键退出到桌面或调用finish时,Activity的生命周期会执行以下步骤:

  • onPause:Activity进入暂停状态,停止处理后台任务。
  • onStop:Activity完全停止运行。
  • onDestroy:Activity销毁,释放资源。

4. 按Home键退出到桌面

当用户按Home键退出到桌面时,Activity的生命周期会执行:

  • onPause:暂停运行。
  • onSaveInstanceState:保存当前状态,以防止状态丢失。
  • onStop:完全停止运行。
  • onDestroy:销毁Activity。

5. Activity上有对话框时按Home键返回

如果Activity上有对话框(如AlertDialog),按Home键返回时,对话框的生命周期会影响整个Activity:

  • onPause:Activity暂停运行。
  • onSaveInstanceState:保存当前状态。
  • onStop:停止运行。
  • onDestroy:销毁Activity。

当对话框关闭后,切换回前台时,Activity会重新启动(onRestart),然后继续其生命周期。

6. 锁屏再开屏

当设备锁屏后再次开屏时,Activity的生命周期会经历:

  • onPause:暂停运行。
  • onSaveInstanceState:保存当前状态。
  • onStop:停止运行。
  • onRestart:重新启动。
  • onStart:重新开始运行。
  • onResume:恢复运行状态。

7. 展示屏幕旋转

屏幕旋转会导致Activity重新创建,以适应新的布局:

  • onPause:暂停当前运行。
  • onSaveInstanceState:保存当前状态。
  • onStop:停止当前运行。
  • onDestroy:销毁当前Activity。
  • onCreate:新Activity创建。
  • onStart:新Activity开始运行。
  • onRestoreInstanceState:恢复保存的状态。
  • onResume:新Activity恢复运行。

8. 下拉状态栏

下拉状态栏不会影响Activity的生命周期,状态栏操作是独立于Activity的。

Activity生命周期图(参考)

Activity的生命周期可以通过图示清晰地展示其各个阶段的转换。虽然图片无法直接显示,但可以通过上述详细描述来理解其动态过程。

通过对Activity生命周期的深入理解,开发者能够更好地管理应用程序的状态,提升用户体验和应用稳定性。

转载地址:http://ncpcz.baihongyu.com/

你可能感兴趣的文章
Java多线程
查看>>
Unity监听日记
查看>>
Android SD卡
查看>>
Android编写电话拨号器
查看>>
AndroidStudio跳到错误位置
查看>>
ARFoundation系列讲解-41图像重新识别
查看>>
unity 四元数和欧拉角相互转换
查看>>
ARFoundation系列讲解-03申请苹果开发者账号
查看>>
ARFoundation系列讲解-43播放视频
查看>>
Unity四中常用路径
查看>>
直接点不玩虚的--启明云端千元现金红包、50pcs开发板直播现场拿走不谢
查看>>
木马开发的基本理论基础(五)
查看>>
windows中如何让chrome信任自签名证书?
查看>>
openssl服务器证书操作
查看>>
expect 模拟交互 ftp 上传文件到指定目录下
查看>>
Matplotlib绘制分组聚合流程图
查看>>
node例子1 express,做一个简单的登录界面,nodejs+express+mysql
查看>>
Android--面试题整理(一)
查看>>
Android--消息摘要MD5,SHA加密
查看>>
Android--进程间通信(Binder)
查看>>