前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Activity的生命周期

Activity的生命周期

作者头像
tea9
发布2022-07-16 16:32:57
3130
发布2022-07-16 16:32:57
举报
文章被收录于专栏: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”

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档