Android中Activity生命周期详解

news2024/11/25 14:44:18

目录

    • 一 典型情况
    • 二 异常情况
      • 2.1 系统配置改变
      • 2.2 系统资源不足kill掉低优先级activity

Activity是四大组件之一,也是接触的最多的,一般来说Activity经常是与用户交互的界面。

一 典型情况

先看下google官网,其实已经很清楚了
在这里插入图片描述
再来个总结

  • onCreate,正在被创建,一次,可以做初始化工作,比如setContentView来加载界面资源
  • onStart 正在启动,可见了但是没在前台没获得焦点,无法与用户交互
  • onResume 到前台获得焦点,可以与用户交互
  • onPause 正在停止,可以做一些轻量级的操作不影响下一个Activity的onResume方法
  • onStop 即将停止,Activity不可见
  • onDestory 摧毁,可以做一些资源回收和释放的操作
  • onRestart 正在重新启动。由stop触发。

最后,前六个都是比较好理解的,就是最后一个onRestart,我以前不太理解。这次看了下官方描述
在这里插入图片描述
调用时机在stop方法的后面,并且当activity重新显示的时候调用,之后调用start和resume。

二 异常情况

2.1 系统配置改变

比如横竖屏切换下,如果不做特殊处理,activity会销毁到重新创建。系统会调用onRestoreInstanceState 来保存当前activity的状态,是onSaveInstanceState 里面的bundle对象,如果onSaveInstanceState不为空,就可以在onCreate里面进行一个重建。
另外,保存view和恢复view本质也是委托思想,当activity被意外终止,activity调用onSaveInstanceState来保存数据,会委托window,window再委托他上面的顶层容器,比如DecorView,顶层容器再来通知他的所有子元素来进行一个保存。

2.2 系统资源不足kill掉低优先级activity

优先级:前台activity > 可见但不处于前台 > 后台

若想横竖屏切换的时候不重新启动,可以对configChanges属性进行配置

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

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

相关文章

分享一个好用的AI 动漫图片工具 - AI Anime Generator,输入文字,1分钟生成动漫图片_AI绘画工具

使用AI绘画工具,1分钟生成动漫图片-AI Anime Generator 分享一个AI生成动漫图片的网站。输入prompt,即可一键自动生成AI动漫图片。 网站名称:AI Anime Generator 工具地址:https://aianimegenerator.top 网站界面比较简洁&…

AQS和ReentrantLock源码剖析

AbstratQuenedSynchronizer抽象队列同步器 一. 简单理解 源码讲解视频 博客 核心参数 变量state :没加锁state0,加锁state1加锁线程:CAS 设置state1 加锁过程 尝试state的值由0变为1,如果发现state的值已经不为0了而是1&am…

C语言图书馆管理系统

以下是系统部分页面 以下是部分源码&#xff0c;需要源码的私信 #include<stdio.h> #include<stdlib.h> #include <string.h> #include<malloc.h>typedef struct {char student_name[100];char student_number[100];char password[100];int total_bor…

【一刷《剑指Offer》】面试题 46:求 1+2+...+n

力扣对应题目链接&#xff1a;LCR 189. 设计机械累加器 - 力扣&#xff08;LeetCode&#xff09; 牛客对应题目链接&#xff1a;求123...n_牛客题霸_牛客网 (nowcoder.com) 一、《剑指Offer》对应内容 二、分析题目 通常实现递归的时候我们都会利用条件判断语句来决定递归的出…

计算机体系结构||Cache性能分析(4)

实验4 Cache性能分析 4.1实验目的 &#xff08;1&#xff09;加深对Cache基本概念、基本组织结构以及工作原理的理解。 &#xff08;2&#xff09;掌握Cache容量、相关度、块大小对Cache性能的影响 &#xff08;3&#xff09;掌握降低Cache不命中率的各种方法以及它们对提高…

初识网络基础知识

关于网络的一些核心概念 局域网 局域网&#xff08;Local Area Network&#xff0c;简称LAN&#xff09;是一种计算机网络&#xff0c;覆盖的范围通常是相对较小的地理区域&#xff0c;比如一个办公室、一栋大楼或一个校园。 局域网的组成通常包括以下部分&#xff1a; 网络…

Docker Desktop Windows 目录介绍

D:\docker\DockerDesktopWSL\main\ext4.vhdx 和 D:\docker\DockerDesktopWSL\data\ext4.vhdx 是 Docker Desktop 在 Windows Subsystem for Linux&#xff08;WSL&#xff09;中使用的虚拟硬盘文件&#xff0c;它们有不同的用途和作用。 虚拟硬盘文件&#xff08;VHDX&#xf…

生成式多模态之AE DAE/MAE VAE VQ-VAE/VQ-VAE2

目录 1. AE2. DAE/MAE3. VAE4. VQ-VAE/VQ-VAE2生成式多模态发展主要历程 年份1月2月3月4月5月6月7月8月9月10月11月2020DETRDDPMDDIM、VisionTransformer2021CLIP、DALLESwin Transformer2022BLIPDALLE 2StableDiffusion、BEiT-3、Midjourney V32023BLIP2VisualChatGPT、Midjou…

linux内核中list的基本用法

内核链表 1 list_head 结构 为了使用链表机制&#xff0c;驱动程序需要包含<linux/types.h>头文件&#xff0c;该文件定义了如下结构体实现双向链&#xff1a; struct list_head {struct list_head *next, *prev; };2 链表的初始化 2.1 链表宏定义和初始化 可使用以…

AES算法概述

文章目录 一、AES 概述二、AES 加密算法的特点三、秘钥类型四、填充方式五、加密方式 一、AES 概述 二、AES 加密算法的特点 AES加密的数据块长度为128&#xff08;16字节&#xff09;&#xff0c;长度不足需要填充。密码长度可以为16,24,32字节。 三、秘钥类型 AES加密按秘…

【科大讯飞笔试题汇总】2024-07-20-科大讯飞秋招提前批(算法岗)-三语言题解(Cpp/Java/Python)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f4e7; 清隆这边最…

基于java+springboot+vue实现的企业OA管理系统(文末源码+Lw)131

基于SpringBootVue的实现的企业OA管理系统&#xff08;源码数据库万字Lun文流程图ER图结构图演示视频软件包&#xff09; 系统功能&#xff1a; 企业OA管理系统有管理员和用户。 管理员功能有个人中心&#xff0c;用户管理&#xff0c;公告信息管理&#xff0c;客户关系管理&…

【nnUNet V2系列】nnUNet V2在Ubuntu下安装调试篇

安装之前网上很多教程&#xff0c;很多是nnUNet V1的安装过程&#xff0c;有的V1和V2混在一起讲解&#xff0c;导致V1的转化指令用到V2中&#xff0c;产生不少误解。这篇是针对V2整理出来的安装过程&#xff0c;有什么不妥之处请指出会及时修改。 1. 创建虚拟环境 conda crea…

某4G区域终端有时驻留弱信号小区分析

这些区域其实是长时间处于连接态的电信卡4G终端更容易出现。 出现问题时都是band1 100频点下发了针对弱信号的1650频点的连接态A4测量事件配置&#xff08;其阈值为-106&#xff09;。而这个条件很容易满足&#xff0c;一旦下发就会切到band3 1650频点。 而1650频点虽然下发ban…

Visual Studio 2022美化

说明&#xff1a; VS版本&#xff1a;Visual Studio Community 2022 背景美化 【扩展】【管理扩展】搜索“ClaudiaIDE”&#xff0c;【下载】&#xff0c;安装完扩展要重启VS 在wallhaven下载壁纸图片作为文本编辑器区域背景图片 【工具】【选项】搜索ClaudiaIDE&#xff…

手机数据恢复技巧:适用于 Android 的恢复应用程序

发现自己意外删除了 Android 设备上的照片&#xff0c;这让人很痛苦。这些照片可能是值得纪念的文件&#xff0c;会让您想起一些难忘的回忆。删除它们后&#xff0c;您知道如何恢复它们。在这种情况下&#xff0c;您需要使用 Android 的照片恢复应用程序。 无论您需要直接从 A…

git跨库合并

1、背景 A为开发环境的代码仓库&#xff0c;B为生产环境的代码仓库。A和B之间不能通信。开发人员的本地电脑可以和A、B通信。 目的 上线时&#xff0c;需要将A代码合并B代码。 2、实现 2.1 添加远程仓库 2.1.1 代码方式 在B代码仓库中,将A添加为远程仓库。 git remote …

腾讯会议产品策划的成长之路:从万字文档到功能落地的实战经验

腾讯会议产品策划的成长之路&#xff1a;从万字文档到功能落地的实战经验 在腾讯会议的产品团队中&#xff0c;有这样一位产品策划&#xff0c;他以其出色的逻辑思维、全局观念以及扎实的执行力&#xff0c;在团队中发挥着举足轻重的作用。他就是林陪同&#xff0c;一个自称“会…

抽奖算法的设计与实现

更多内容欢迎访问我的个人博客网站&#xff1a;www.zpf0000.com 在数据库中准备好以下数据表 lottery表 sql代码解读复制代码 DROP TABLE IF EXISTS lottery; CREATE TABLE lottery (id int NOT NULL AUTO_INCREMENT,user_id int NOT NULL DEFAULT 0 COMMENT 发起抽奖用户ID,n…

【MySQL】:对库和表的基本操作方法

数据库使用的介绍 什么是SQL 学习数据库的使用——>基于 SQL编程语言 来对数据库进行操作 重点表述的是“需求”&#xff0c;期望得到什么结果。&#xff08;至于结果是如何得到的&#xff0c;并不关键&#xff0c;都是数据库服务器在背后做好了&#xff09; 重点表述的是…