Activity的生存期

news2024/10/6 2:28:25

以下内容摘自郭霖《第一行代码》第三版

Activity的生存期

在这里插入图片描述

Activity类中定义了7个回调方法,覆盖了Activity生命周期的每一个环节:

  1. onCreate()。这个方法你已经看到过很多次了,我们在每个Activity中都重写了这个方法,它会在Activity第一次被创建的时候调用。你应该在这个方法中完成Activity的初始化操作,比如加载布局、绑定事件等。

  2. onStart()。这个方法在Activity由不可见变为可见的时候调用。

  3. onResume()。这个方法在Activity准备好和用户进行交互的时候调用。此时的Activity一定位于返回栈的栈顶,并且处于运行状态。

  4. onPause()。这个方法在系统准备去启动或者恢复另一个Activity的时候调用。我们通常会在这个方法中将一些消耗CPU的资源释放掉,以及保存一些关键数据,但这个方法的执行速度一定要快,不然会影响到新的栈顶Activity的使用。

  5. onStop()。这个方法在Activity完全不可见的时候调用。它和onPause()方法的主要区别在于,如果启动的新Activity是一个对话框式的Activity,那么onPause()方法会得到执行,而onStop()方法并不会执行。

  6. onDestroy()。这个方法在Activity被销毁之前调用,之后Activity的状态将变为销毁状态。

  7. onRestart()。这个方法在Activity由停止状态变为运行状态之前调用,也就是Activity被重新启动了。

以上7个方法中除了onRestart()方法,其他都是两两相对的,从而又可以将Activity分为以下3种生存期:

  • 完整生存期。Activity在onCreate()方法和onDestroy()方法之间所经历的就是完整生存期。一般情况下,一个Activity会在onCreate()方法中完成各种初始化操作,而在onDestroy()方法中完成释放内存的操作。

  • 可见生存期。Activity在onStart()方法和onStop()方法之间所经历的就是可见生存期。在可见生存期内,Activity对于用户总是可见的,即便有可能无法和用户进行交互。我们可以通过这两个方法合理地管理那些对用户可见的资源。比如在onStart()方法中对资源进行加载,而在onStop()方法中对资源进行释放,从而保证处于停止状态的Activity不会占用过多内存。

  • 前台生存期。Activity在onResume()方法和onPause()方法之间所经历的就是前台生存期。在前台生存期内,Activity总是处于运行状态,此时的Activity是可以和用户进行交互的,我们平时看到和接触最多的就是这个状态下的Activity。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/820641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安科瑞电动机保护器产品在污水处理厂的应用-安科瑞黄安南

应用场景 功能 1)排污泵经常会出现过载、缺相等问题,导致电机烧坏; 2)为电动机提供完善的保护,并具备多种事件记录追忆功能; 3)全电参量测量,包括但不限于三相电流、三相电压、有…

11-矩阵(matrix)_方阵_对称阵_单位阵_对角阵

矩阵及其运算 [ a 11 ⋯ a 1 n ⋯ ⋯ ⋯ a m 1 ⋯ a m n ] \begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \cdots & \cdots & \cdots \\ a_{m1} & \cdots & a_{mn} \\ \end{bmatrix} ​a11​⋯am1​​⋯⋯⋯​a1n​⋯amn​​ ​ 矩阵就是二维数组&…

模板(下)

文章目录 非类型模板参数 模板的特化 模板分离编译 一、非类型模板参数 模板参数分为类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参:就是用一个常量作为类(函数)模板的…

【笔试强训选择题】Day33.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!&#xff…

记一次 HTTPS 抓包分析和 SNI 的思考

日常听说 HTTPS 是加密协议,那现实中的 HTTPS 流量,是真的完全加密吗? ——答案是,不一定。原因嘛,抓个包就知道了。 我们用 curl 命令触发一下: curl -v https://s-api.37.com.cn/api/xxx * Trying 1…

【雕爷学编程】MicroPython动手做(27)——物联网之掌控板小程序2

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

退退退!台风“卡努”或转向!打开华为天气查看台风实时路径

近期台风频繁,刚送走了“杜苏芮”,又或将迎来第六号超强台风“卡努”。面对来势汹汹的台风,通勤和外出变得困难重重。为了有效抵御台风肆虐,大家需要做好应对措施,保障人身安全。 如果处于台风登陆的影响范围内&#…

莱佛士学生作品精彩亮相小马宝莉40周年艺术展

由全球领先玩乐公司孩之宝举办的“小马宝莉40周年艺术展”在上海市黄浦区淮海中路862-864号进行展出。 ▲莱佛士学生作品亮相小马宝莉40周年展 本次展览特别邀请多位国内新生代艺术家以小马宝莉为灵感缪斯开展全新创作实践,通过雕塑、绘画、新媒体艺术等作品讲述…

编程语言:基础知识与思维方式的演进

编程语言的基础知识差异并不大,因为计算机发展源于冯诺伊曼模型,而编程语言只是其工具之一。区别在于使用工具的思维方式。以前,人们让计算机做某件事,C语言需要清楚地描述过程,即面向过程。随着计算能力的提升&#x…

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(20)-Fiddler精选插件扩展安装让你的Fiddler开挂到你怀疑人生

1.简介 Fiddler本身的功能其实也已经很强大了,但是Fiddler官方还有很多其他扩展插件功能,可以更好地辅助Fiddler去帮助用户去开发、测试和管理项目上的任务。Fiddler已有的功能已经够我们日常工作中使用了,为了更好的扩展Fiddler&#xff0c…

二阶段web基础与http协议

dns与域名 网络是基于tcp/ip协议进行通信和连接的 应用层-----传输层-----网络层-----数据链路层-----物理层 ip地址,每一台主机都有一个唯一的地址标识(固定的ip地址) 1.区分用户和计算机 2.通信 ip地址的问题在于32位二进制数组成的&…

Linux安装部署并使用Redis(包含Redis Desktop Manager界面化工具)

文章目录 前言一、Redis的简介二、redis的安装与配置(Linux环境)三、redis的使用(Redis Desktop Manager界面化)四、基本命令**String基本命令:****hash基本命令:****List基本命令:****set基本命…

探究SAM和眼球追踪技术在自动医学图像分割的应用(2023+GazeSAM: What You See is What You Segment)

摘要: 本研究探讨眼动追踪技术与SAM的潜力,以设计一个协同的人机交互系统,自动化医学图像分割。提出了GazeSAM系统,使放射科医生能够在图像诊断过程中通过简单地查看感兴趣的区域来收集分割掩模。该系统跟踪放射科医生的眼球运动…

Vue3 的ref和reactive的用法和区别

一、是什么? ref和reactive是Vue3中用来实现数据响应式的API,一般情况下,ref定义基本数据类型,reactive定义引用数据类型。 二、基础用法 1. ref ref的参数一般是基本数据类型,也可以是对象类型;如果参…

BugKu CTF(杂项篇MISC)—想要种子吗

BugKu CTF(杂项篇MISC)—想要种子吗 提 示: 描 述:flag{} 题目下载后是一张图片,打开如下。 一、工具 十六进制编辑器010 editor kali系统文件分离工具binwalk或者foremost 维吉尼亚密码 STEGHIDE图片隐写工具 文章所需的软件下载地址 ARCHPR压缩包密码破解…

5分钟快速掌握低代码和无代码工具

一、低代码和无代码平台,堪比编程界的美图秀秀! 与传统编程平台相比,低代码和无代码开发平台让开发人员及非技术用户可以更快速地开发应用程序,而成本变得更低。本文将带你一起了解什么是低代码与无代码平台。 低代码和无代码开发…

Spark性能调优之数据序列化

前言 在使用Spark进行数据开发的时候,避不开的一个问题就是性能调优。网上一搜一大堆所谓的调优策略很多作者自己都不知所云,导致读者看了后只会更加困惑。我们在研究一个技术的时候第一手资料永远都请参考官网,官网对性能优化不一定是最全甚至最优,但是可以解决大部分问题…

微信新增的“上锁”功能,上班族狂喜!

近期 微博话题 #微信新增锁定功能# 冲上热搜 引发关注 微信锁🔒 这个功能对于经常使用微信办公的上班族来说很实用,信息安全得到极大提升,当你搬砖时,在电脑登陆了自己的微信,如果这个时候去拿个外卖,又…

021 - STM32学习笔记 - Fatfs文件系统(三) - 细化与总结

021 - STM32学习笔记 - Fatfs文件系统(三) - 细化与总结 上节内容中,初步实现了FatFs文件系统的移植,并且实现了设备的挂载、文件打开/关闭与读写功能,这里对上节遗留的一些问题进行总结,并且继续完善文件…

经纬恒润推出整车E/E全链路测试实验室解决方案

仿真测试作为“V流程”右半部分最重要的组成部分,是汽车电子电气测试不可或缺的技术手段。随着各种各样的测试设备进场,如何高效地统筹规划仿真测试实验室,成为了各车企关心的问题。 仿真测试实验室不仅能够服务于汽车电子零部件的仿真测试&…