Android -- 每日一问:怎么理解 Activity 的生命周期?

news2024/9/22 20:02:53

02.jpg

典型回答

image.png

如果一个 Activity 在用户可见时才处理某个广播,不可见时注销掉,那么应该在哪两个生命周期的回调方法去注册和注销
BroadcastReceiver 呢?

Activity 的可见生命周期发生在 onStart调用与 onStop调用之间。在这段时间,用户可以在屏幕上看到 Activity 并与其交互。我们可以在 onStart中注册一个BroadcastReceiver 以监控影响 UI 的变化,并在用户无法再看到您显示的内容时在
onStop 中将其取消注册。

如果有一些数据在 Activity 跳转时(或者离开时)要保存到数据库,那么你认为是在 onPause 好还是在 onStop
执行这个操作好呢?

onPause 较容易被触发,所以我们在做 BroadcastReceiver 注销时放在onStop要好些。onPause 时 Activity 界面仍然是可见的,如弹出一个 Dialog 时。但在保存数据时,放在 onPause 去做可以保证数据存储的有效性,如果放在 onStop 去做,在某些情况下 Activity 走完 onPause 后有可能还没顺利走到 onStop 就被系统回收了。

但要注意在 onPause 中要非常迅速地执行完所需操作,不然会影响到下一个 Activity 的生命周期函数的调用。

简单说一下 Activity A 启动 Activity B 时,两个 Activity 生命周期的变化。

当一个 Activity 启动另一个 Activity 时,它们都会发生生命周期转变。第一个 Activity 暂停然后停止(但如果它在后台仍然可见,则不会停止,比如 B 是半透明的),系统会创建另一个 Activity。 如果这两个 Activity 共用保存数据到文件或者数据库,必须要注意,在创建第二个 Activity 前,第一个 Activity 不会完全停止。更确切地说,启动第二个 Activity 的过程与停止第一个 Activity 的过程存在重叠。

以下是当 Activity A 启动 Activity B 时一系列操作的发生顺序:
Activity A 的 onPause 方法执行。
Activity B 的 onCreate、onStart 和 onResume 方法依次执行。
然后,如果 Activity A 在屏幕上不再可见,则其 onStop 方法执行。

你的朋友是不是也在准备面试呢?你可以“请朋友读”,把今天的题目分享给好友,或许你能帮到他。

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

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

相关文章

nginx(六十四)proxy模块(五)接收上游响应

一 接收上游的响应 前提: nginx与上游建立连接,把nginx生成的请求(line、header、body)信息发送给上游补充: 上游解析处理完之后,会发送响应​核心: nginx如何接收、解析、处理上游响应行、响应头、响应体 下载大文件失败 (…

一文了解 Go 的复合数据类型(数组、Slice 切片、Map)

一文了解 Go 的复合数据类型[数组、切片 Slice、Map]前言数组数组的创建方式数组的遍历Slice 切片切片的创建方式切片的遍历向切片追加元素MapMap 的创建方式Map 的基本操作插入和修改删除查找操作遍历操作删除操作小结耐心和持久胜过激烈和狂热。 前言 上一篇文章一文熟悉 Go…

CMake Cookbook by Eric

I. Basics 关键字&#xff1a;CMake中的构建指令 指令的书写是大小写无关的&#xff1b; II. Project&#xff1a;指定项目名称和语言类型 命令格式&#xff1a;project(<PROJECT-NAME> [<language-name>...]) Note 项目名称<PROJECT-NAME>不需要与项目根…

论文阅读【7】HHM隐马尔科夫模型

1.隐马尔科夫模型&#xff08;HMM&#xff09;的介绍 隐马尔科夫模型有两个序列&#xff0c;上面一层序列的值称之为影藏值(隐式变量)&#xff0c;下面一个序列中的值被称为观察值&#xff0c;想这个的序列模型被称为生成模型&#xff08;Generate model&#xff09;。z表示的是…

Linux - lsof显示 tcp,udp 的端口和进程

文章目录功能语法示例lsof -i 显示 tcp&#xff0c;udp 的端口和进程等相关查看服务器 80 端口的占用情况使用 -p 查看指定进程打开的文件更多命令功能 lsof&#xff08;list open files&#xff09;是一个列出当前系统打开文件的工具。 lsof 需要访问核心内存和各种文件&…

【区块链技术与应用】(八)

https://blog.csdn.net/lakersssss24/article/details/125762826?spm1001.2014.3001.5501 https://blog.csdn.net/lakersssss24/article/details/126434147 https://blog.csdn.net/lakersssss24/article/details/126671408?spm1001.2101.3001.6650.3&utm_mediumdistribut…

[附源码]java毕业设计医院仪器设备管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

cubeIDE开发, stm32的OLED点亮及字符显示设计(基于SPI通信)

一、SPI 通信技术 显示屏&#xff08;LCD、OLED&#xff09;接口一般有I2C、SPI、UART、RGB、LVDS、MIPI、EDP和DP等。一般3.5寸以下的小尺寸LCD屏&#xff0c;显示数据量比较少&#xff0c;普遍采用低速串口&#xff0c;如I2C、SPI、UART。SPI&#xff08;Serial Peripheral I…

通用后台管理系统前端界面Ⅹ——前端数据表格的删除、查找

删除操作 1、拿到id或者行数据对象 2、查看后端接口方法&#xff0c;写api方法&#xff0c;将操作连接上后端 后端请求操作成功&#xff0c;但是前端数据表格未更新&#xff0c;最简单的一种方法数据删除后要重新获取数据》 依旧显示成功&#xff0c;但是前端数据表格未变化&…

Bert and its family

Bert没有办法一次性读入特别长的文本的问题。自注意力机制非常消耗时间和空间。 概率值最大取argmax&#xff0c;对应的下标 整体全部更新&#xff0c;所有参数都更新&#xff0c;比固定住pre-trained要好很多。 不做预训练&#xff0c;loss下降比较慢&#xff0c;收敛比较慢&a…

BIM在工程中的20种典型功能

1、BIM模型维护 根据项目建设进度建立和维护BIM模型&#xff0c;实质是使用BIM平台汇总各项目团队所有的建筑工程信息&#xff0c;消除项目中的信息孤岛&#xff0c;并且将得到的信息结合三维模型进行整理和储存&#xff0c;以备项目全过程中项目各相关利益方随时共享。 由于…

Java 微信关注/取消关注事件

Java 微信关注/取消关注事件一、需求、思路二、文档、配置配置步骤1配置步骤2三、代码1、引入依赖包2、controller3、封装消息对象4、service、解密5、工具包一、需求、思路 需求&#xff1a;用户订阅/取消订阅公众号时接收消息并保存到数据库中以便后续功能的处理。 思路&…

【分类-SVDD】基于支持向量数据描述 (SVDD) 的多类分类算法附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

机器学习-回归模型相关重要知识点

目录01 线性回归的假设是什么&#xff1f;02 什么是残差&#xff0c;它如何用于评估回归模型&#xff1f;03 如何区分线性回归模型和非线性回归模型&#xff1f;04 什么是多重共线性&#xff0c;它如何影响模型性能&#xff1f;05 异常值如何影响线性回归模型的性能&#xff1f…

Springboot Security 前后端分离模式自由接口最小工作模型

但凡讲解Springboot Security的教程&#xff0c;都是根据其本身的定义&#xff0c;前后端整合在一起&#xff0c;登录采用form或者basic。我们现在的很多项目&#xff0c;前后端分离&#xff0c;form登录已经不适用了。很多程序的架构要求所有的接口都采用application/json方式…

RabbitMQ顺序性、可靠性、重复消费、消息堆积解决方案

RabbitMQ顺序性、可靠性&#xff08;消息丢失&#xff09;、重复消费、消息堆积解决方案 顺序性 RabbitMQ使用过程中&#xff0c;有些业务场景需要我们保证顺序消费&#xff0c;例如&#xff1a;业务上产生三条消息&#xff0c;分别是对数据的增加、修改、删除操作&#xff0…

【Java八股文总结】之Linux常用指令

文章目录Linux简介一、Linux目录结构二、Linux常用指令Linux简介 一、Linux目录结构 bin&#xff08;binaries&#xff09;&#xff1a;存放二进制可执行文件。 sbin&#xff08;super user binaries&#xff09;&#xff1a;存放二进制可执行文件&#xff0c;只有root才能访…

怎么把图片转换成表格?分享三个简单方法给你

你们是否在工作的时候会遇到这样的情况&#xff1a;收到同事发来的一张表格图片&#xff0c;需要你进行汇总登记&#xff0c;通常这种时候&#xff0c;你们都会怎么做呢&#xff1f;是根据图片的内容&#xff0c;手动输入制作成一份表格吗&#xff1f;虽然这样子可以进行表格的…

c++ 旅行商问题(动态规划)

目录一、旅行商问题简介旅行商问题问题概述问题由来二、基本思路三、实现1、状态压缩2、状态转移四、代码复杂度分析一、旅行商问题简介 旅行商问题 TSP&#xff0c;即旅行商问题&#xff0c;又称TSP问题&#xff08;Traveling Salesman Problem&#xff09;&#xff0c;是数学…

网络编程基础知识

文章目录1、网络概念2、协议3、网络分层4、网络传输流程5、端口号1、网络概念 先有计算机还是先有网络呢&#xff1f; 答案是先有计算机&#xff0c;为了数据研究和沟通的需求产生的网络&#xff0c;网络的产生是为了提升效率的。 那什么是网络呢&#xff1f; 网络指的是网络协…