当前位置:网站首页>Activity的生命周期
Activity的生命周期
2022-07-16 16:37:00 【tea9】
典型情况下的生命周期分析 (1)onCreate() 表示Activity正在被创建 做一些初始化操作
(2)onRestart() 表示Activity正在重新启动 从不可见重新变为可见状态 这种情况一般是用户行为导致的 比如用户按HOME键切换到桌面或者用户打开了一个新的Activity这时当前的Activity就会暂停 也就是onPause和onStop被执行了接着用户又回到这个Activity就会出现这种情况
(3)onStart() 表示Activity正在被启动 即将开始 这是Activity已经可见 但还没出现在前台 还无法与用户交互
(4)onResume 表示Activity已经可见了 并出现在前台并已经开始活动
(5)onPause 表示Activity正在停止 正常情况下onStop就会被调用 特殊情况下 如果这个时候快速回到当前Activity那么onResume会被调用 onPause必须先执行完新Activity的onResume才会执行
(6)onStop 表示Activity即将停止
(7)onDestroy 表示Activity即将被销毁
(1)针对一个特定的Activity第一次启动 onCreate ->onStart->onResume (2)当用户打开新的Activity或者切换到桌面的时候 onPause->onStop (3)当用户再次回到原Activity时 onRestart->onStart->onResume (4)当用户back键回退时 onPause-> onStop->onDestroy (5)当Activity被系统回收后再次打开 生命周期回调过程和(1)一样 (6)从整个生命周期来说 onCreate和onDestroy是配对的 分别标识着Activity的创建和销毁并只可能有一次调用 从Activity的是否可见来说onStart和onStop是配对的随着用户的操作或者设备的屏幕点亮和熄灭这两个方法可能被调用多次 从Activity是否在前台来说 onResume和onPause是配对的随着用户操作或者设备的点亮和熄灭这两个方法可能被调用多次
当新启动一个Activity的时候旧Activity的onPause会先执行然后才会启动新的Activity
异常情况下的生命周期分析 情况1 资源相关的系统配置发生改变导致Activity被杀死并重新创建 当系统配置发生变化后Activity会被销毁 其 onPause onStop onDestroy均会被调用 用于Activity被异常终止的 系统会调用onSaveInstanceState保存当前Activity状态 在重新创建后系统会调用onRestoreInstanceState并把Activity销毁时onSaveInstanceState方法保存的Bundle对象作为参数同时传递给onRestoreInstanceState和onCreate
onSaveInstanceState在onStop之前调用 和onPause没有时序的关系 onRestoreInstanceState在onStart之后调用
情况2资源内存不足导致低优先级的Activity被杀死 数据存储和恢复过程和情况1完全一致 Activity优先级 (1)前台Activity—–正在和用户交互的Activity优先级最高 (2)可见非前台Activity—–比如Activity中弹出一个对话框 导致Activity可见但是位于后台无法和用户直接交互 (3)后台Activity—-已经被暂停的Activity比如执行了onStop 优先级最低
不想系统重新创建Activity就可以给Activity指定configChanges属性 android:configChanges=”orientation”
边栏推荐
- Airtest+poco multi script, multi device batch run test cases automatically generate test reports
- [MySQL] common commands and summary of "MySQL must know and know"
- 渐隐渐现1920-500(7)
- 安卓 Day 27 :数据库One
- Ci521 domestic 13.56MHz reader chip replaces cv520 compatible
- 电影知识图谱和基于模板的问答系统构建
- 如何创建和部署 ERC-1155 NFT
- 公司股权结构顶层设计方案(案例)
- Format output text in CAD
- 黑马程序员-软件测试-15阶段3-功能测试146-173用例评审总结,tpshop项目实战,状态迁移法案例,流程图,业务流程测试,项目和数据库的关系,数据库典型应用场景,定位bug,,验证数据的准确性
猜你喜欢

The third part of building PSIM simulation model of buck circuit (simulation of digital difference equation)

在四线城市生活,拿一线城市工资,是种怎样的体验?

PHP routing (ThinkPHP 5)

go语言整数二分模板

马斯克76岁父亲与继女生子,华强北又出一个芯片IPO,原蚂蚁副总投身AI制药,今日更多大新闻在此...

更改信号采样率和测量均值频率、功率、带宽

Unity typewriter effect timer implementation and dotween implementation (notes)

JMeter 21 day clock in day06

JMeter 21 day clock in day05

Get started with grid layout quickly
随机推荐
对话印奇:我们所坚持的不会改变,旷视跳出企业科研“周期律”
Window10 Remote Desktop Connection prompt: "unable to locate the program input point: \u cxxframehandler4 in the dynamic link library" error solution
Towards verifiable AI: five challenges of formal methods
JMeter 21 天打卡 day05
Vivado ROM IP核
「 每日一练,快乐水题 」1252. 奇数值单元格的数目
SI24R2E_智能电子学生卡2.4GHz考勤方案芯片
Unity 视频控制暂停播放以及滑动条拖拽(笔记)
Unity typewriter effect timer implementation and dotween implementation (notes)
JMeter 21 day clock in day05
高階 DS --- AVL 樹
Dalvik虚拟机和ART
Change signal sampling rate and measurement mean frequency, power and bandwidth
MQ简单介绍
老外还停留在20年前
【CODETOOL】文件比较Beyond Compare使用介绍
Logs issue 2022/07/16 | Li Jia, Hong Kong University of science and technology: Rethinking graph anomaly detection - what kind of graph neural network do we need?
Dynamic parameter transfer of PHP for tag end attribute (ThinkPHP)
Unsafe service permissions cooperate with MSF to raise rights
Jmeter常用功能-参数化介绍