Activity->Activity生命周期
<四大组件 android:name="xxx"android:exported="true" // 该组边能够被其他组件启动android:enabled="true" // 该组件能工与用户交互
</四大组件>
Activity常用生命周期
- 启动
Activity
2024-05-29 03:53:57.401 21372-21372 yang I onCreate
2024-05-29 03:53:57.403 21372-21372 yang I onStart
2024-05-29 03:53:57.405 21372-21372 yang I onResume
Activity切到后台,锁屏
2024-05-29 03:55:14.174 21372-21372 yang I onPause
2024-05-29 03:55:14.647 21372-21372 yang I onStop
2024-05-29 03:55:14.648 21372-21372 yang I onSaveInstanceState
Activity返回前台
2024-05-29 03:55:42.337 21372-21372 yang I onRestart
2024-05-29 03:55:42.340 21372-21372 yang I onStart
2024-05-29 03:55:42.340 21372-21372 yang I onResume
Activity旋转方向两次回来AndroidManifest.xml文件中没有配置android:configChanges="screenSize|orientation"
2024-05-29 04:13:49.562 16759-16759 yang I onCreate
2024-05-29 04:13:49.565 16759-16759 yang I onStart
2024-05-29 04:13:49.567 16759-16759 yang I onResume
2024-05-29 04:14:00.009 16759-16759 yang I onPause
2024-05-29 04:14:00.014 16759-16759 yang I onStop
2024-05-29 04:14:00.015 16759-16759 yang I onSaveInstanceState
2024-05-29 04:14:00.015 16759-16759 yang I onDestroy
2024-05-29 04:14:00.077 16759-16759 yang I onCreate
2024-05-29 04:14:00.089 16759-16759 yang I onStart
2024-05-29 04:14:00.090 16759-16759 yang I onRestoreInstanceState
2024-05-29 04:14:00.090 16759-16759 yang I onResume
AndroidManifest.xml文件中配置android:configChanges="screenSize|orientation"
2024-05-29 04:15:54.484 17090-17090 yang I onCreate
2024-05-29 04:15:54.486 17090-17090 yang I onStart
2024-05-29 04:15:54.488 17090-17090 yang I onResume
2024-05-29 04:16:05.746 17090-17090 yang I onConfigurationChanged
2024-05-29 04:16:12.112 17090-17090 yang I onConfigurationChanged
Activity启动模式
standard标准模式
- 每次启动
Activity时,系统都会在当前Activity栈创建一个新的Activity实例,无论该Activity是否已经存在
const val TAG = "Yang"
class MainActivity : AppCompatActivity() {var mImageView : MyImageView ?= nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)mImageView = findViewById(R.id.real_iv)mImageView?.setOnClickListener {val intent = Intent(this, MainActivity::class.java)startActivity(intent)}Log.i("yang", "$this onCreate")}override fun onStart() {super.onStart()Log.i("yang", "$this onStart")}override fun onResume() {super.onResume()Log.i("yang", "$this onResume")}override fun onPause() {super.onPause()Log.i("yang", "$this onPause")}override fun onStop() {super.onStop()Log.i("yang", "$this onStop")}override fun onDestroy() {super.onDestroy()Log.i("yang", "$this onDestroy")}override fun onRestart() {super.onRestart()Log.i("yang", "$this onRestart")}override fun onSaveInstanceState(outState: Bundle) {super.onSaveInstanceState(outState)Log.i("yang", "$this onSaveInstanceState")}override fun onRestoreInstanceState(savedInstanceState: Bundle) {super.onRestoreInstanceState(savedInstanceState)Log.i("yang", "$this onRestoreInstanceState")}override fun onConfigurationChanged(newConfig: Configuration) {super.onConfigurationChanged(newConfig)Log.i("yang", "$this onConfigurationChanged")}override fun onNewIntent(intent: Intent?) {super.onNewIntent(intent)Log.i("yang", "$this onNewIntent")}
}// log result
2024-05-29 05:01:46.737 26443-26443 yang I com.yang.app.MainActivity@54d9d4e onCreate
2024-05-29 05:01:46.739 26443-26443 yang I com.yang.app.MainActivity@54d9d4e onStart
2024-05-29 05:01:46.742 26443-26443 yang I com.yang.app.MainActivity@54d9d4e onResume
2024-05-29 05:01:49.573 26443-26443 yang I com.yang.app.MainActivity@54d9d4e onPause
2024-05-29 05:01:49.609 26443-26443 yang I com.yang.app.MainActivity@4c77c18 onCreate
2024-05-29 05:01:49.621 26443-26443 yang I com.yang.app.MainActivity@4c77c18 onStart
2024-05-29 05:01:49.622 26443-26443 yang I com.yang.app.MainActivity@4c77c18 onResume
2024-05-29 05:01:49.983 26443-26443 yang I com.yang.app.MainActivity@54d9d4e onStop
2024-05-29 05:01:49.984 26443-26443 yang I com.yang.app.MainActivity@54d9d4e onSaveInstanceState
singleTop单顶模式
- 如果
Activity位于Activity栈的栈顶,会复用这个实例,并回调onNewIntent()方法。没有处于栈顶,还会继续创建新的实例
2024-05-29 06:58:47.124 2160-2160 yang I com.yang.app.MainActivity@54d9d4e onCreate
2024-05-29 06:58:47.126 2160-2160 yang I com.yang.app.MainActivity@54d9d4e onStart
2024-05-29 06:58:47.128 2160-2160 yang I com.yang.app.MainActivity@54d9d4e onResume
2024-05-29 06:58:49.444 2160-2160 yang I com.yang.app.MainActivity@54d9d4e onPause
2024-05-29 06:58:49.444 2160-2160 yang I com.yang.app.MainActivity@54d9d4e onNewIntent
2024-05-29 06:58:49.445 2160-2160 yang I com.yang.app.MainActivity@54d9d4e onResume
singleTask单任务模式
- 当前
Activity栈只会存在这一个Activity实例,如果Activity位于Activity栈的栈顶,会复用这个实例,并回调onNewIntent()方。如果没有处于Activity栈的栈顶,会清除要启动的Activity上面的所有Activity
2024-05-29 07:54:20.568 7933-7933 yang I com.yang.app.MainActivity@4db5049 onCreate
2024-05-29 07:54:20.576 7933-7933 yang I com.yang.app.MainActivity@4db5049 onStart
2024-05-29 07:54:20.579 7933-7933 yang I com.yang.app.MainActivity@4db5049 onResume
2024-05-29 07:54:23.027 7933-7933 yang I com.yang.app.MainActivity@4db5049 onPause
2024-05-29 07:54:23.054 7933-7933 yang I com.yang.SecondActivity@7657d8c onCreate
2024-05-29 07:54:23.065 7933-7933 yang I com.yang.SecondActivity@7657d8c onStart
2024-05-29 07:54:23.066 7933-7933 yang I com.yang.SecondActivity@7657d8c onResume
2024-05-29 07:54:23.421 7933-7933 yang I com.yang.app.MainActivity@4db5049 onStop
2024-05-29 07:54:23.422 7933-7933 yang I com.yang.app.MainActivity@4db5049 onSaveInstanceState
2024-05-29 07:54:25.331 7933-7933 yang I com.yang.SecondActivity@7657d8c onPause
2024-05-29 07:54:25.335 7933-7933 yang I com.yang.app.MainActivity@4db5049 onRestart
2024-05-29 07:54:25.338 7933-7933 yang I com.yang.app.MainActivity@4db5049 onStart
2024-05-29 07:54:25.338 7933-7933 yang I com.yang.app.MainActivity@4db5049 onNewIntent
2024-05-29 07:54:25.338 7933-7933 yang I com.yang.app.MainActivity@4db5049 onResume
2024-05-29 07:54:25.683 7933-7933 yang I com.yang.SecondActivity@7657d8c onStop
2024-05-29 07:54:25.684 7933-7933 yang I com.yang.SecondActivity@7657d8c onDestroy
singleInstance单实例模式
- 所有
Activity栈只能存在这一个Activity实例,意味着这个Activity栈不会有其他Activity的实例。如果singleInstance启动模式启动的Activity再去启动的另外的Activity,会再创建一个新的Activity栈,另外的Activity存在这个新创建的栈中。从Recent最近打开任务可以看到两个应用窗口 - 查看当前任务栈启动
Activity数量
val activityManager = getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
val numActivities = activityManager.appTasks[0].taskInfo.numActivities
Log.i("yang", "当前{$this}栈启动Activity数量 = $numActivities")// log result
2024-05-29 08:14:09.137 11888-11888 yang I 当前{com.yang.app.MainActivity@8ae877c}栈启动Activity数量 = 1
2024-05-29 08:14:09.137 11888-11888 yang I com.yang.app.MainActivity@8ae877c onCreate
2024-05-29 08:14:09.147 11888-11888 yang I com.yang.app.MainActivity@8ae877c onStart
2024-05-29 08:14:09.149 11888-11888 yang I com.yang.app.MainActivity@8ae877c onResume
2024-05-29 08:14:11.872 11888-11888 yang I com.yang.app.MainActivity@8ae877c onPause
2024-05-29 08:14:11.902 11888-11888 yang I 当前{com.yang.SecondActivity@754bbdb}栈启动Activity数量 = 1
2024-05-29 08:14:11.903 11888-11888 yang I com.yang.SecondActivity@754bbdb onCreate
2024-05-29 08:14:11.915 11888-11888 yang I com.yang.SecondActivity@754bbdb onStart
2024-05-29 08:14:11.916 11888-11888 yang I com.yang.SecondActivity@754bbdb onResume
2024-05-29 08:14:12.286 11888-11888 yang I com.yang.app.MainActivity@8ae877c onStop
2024-05-29 08:14:12.286 11888-11888 yang I com.yang.app.MainActivity@8ae877c onSaveInstanceState
相关文章:
Activity->Activity生命周期
<四大组件 android:name"xxx"android:exported"true" // 该组边能够被其他组件启动android:enabled"true" // 该组件能工与用户交互 </四大组件>Activity常用生命周期 启动Activity 2024-05-29 03:53:57.401 21372-21372 yang …...
乐鑫ESP串口驱动安装,安装cp210x驱动
windows11安装cp210x驱动: 1:第一步官网下载驱动: 官网地址如下: CP210x USB to UART Bridge VCP Drivers - Silicon Labs 第二步:解压文件夹并安装如图所示: 3:第三步安装成功后会给你个提示…...
Django缓存
由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,若某个时…...
Python 元组
(1)元组中只包含一个元素时,需要在元素后面添加逗号: tup1 (50,); (2)元组中的元素值是不允许修改的,但我们可以对元组进行连接组合: tup1 (12, 34.56); tup2 (abc, xyz);# 以…...
JAVA面试题大全(十八)
1、说一下 jvm 的主要组成部分?及其作用? 类加载器(ClassLoader)运行时数据区(Runtime Data Area)执行引擎(Execution Engine)本地库接口(Native Interface)…...
如何利用Firebase Hosting来托管网站
文章目录 如何利用Firebase Hosting来托管网站前提条件详细步骤1. 安装 Firebase CLI2. 登录 Firebase3. 初始化 Firebase 项目4. 准备网站文件5. 部署到 Firebase6. 配置自定义域名(可选) 常见问题 如何利用Firebase Hosting来托管网站 以下是更详细的…...
揭秘“循环消费”模式:消费即收益,购物新体验
亲爱的朋友们,大家好,我是李华。今天,我要为大家介绍一种正在悄然兴起的商业模式——“循环消费”。你是否曾想过,在消费的同时,还能获得额外的收益和回馈?这种新型模式正在逐渐改变我们的购物体验。 近期&…...
图片怎样在线改像素大小?电脑快速修改图片大小的方法
在设计图片的时候下载的图片尺寸一般会比较大,在网上使用经常会因为尺寸的问题导致无法正常上传,那么如何快速在线改图片大小呢?想要修改图片尺寸可以在直接选择网上的图片改大小工具的功能来快速完成修改,操作简单方便使用&#…...
SELINUX=enforcing时无法启动httpd服务的解决方案(semanage命令以及setroubleshoot-server插件的妙用)
一、问题描述: 当/etc/selinux/conf被要求必须是SELINUXenforcing,不被允许使用setenforce 0宽松模式 我们启动httpd就会报错: Job for httpd.service failed because the control process exited with error code. See "systemctl s…...
【C++】list的使用方法和模拟实现
❤️欢迎来到我的博客❤️ 前言 list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后…...
【物联网实战项目】STM32C8T6+esp8266/mqtt+dht11+onenet+uniapp
一、实物图 前端uniapp效果图(实现与onenet同步更新数据) 首先要确定接线图和接线顺序: 1、stm32c8t6开发板连接stlinkv2下载线 ST-LINK V2STM323.3V3.3VSWDIOSWIOSWCLKSWCLKGNDGND 2、ch340串口连接底座(注意RXD和TXD的连接方式…...
Pyhton 二叉树层级遍历
class TreeNode:def __init__(self, val0, leftNone, rightNone):self.val valself.left leftself.right rightclass Solution:def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:res []# 空节点,直接返回if not root:return resque [roo…...
Flutter 中的 FadeTransition 小部件:全面指南
Flutter 中的 FadeTransition 小部件:全面指南 在 Flutter 中,动画是一种吸引用户注意力并提供流畅用户体验的强大工具。FadeTransition 是 Flutter 提供的一个动画小部件,它允许子组件在不透明度上进行渐变,从而实现淡入和淡出效…...
缓存存储器:性能提升的关键
目录 基本原理 主存与缓存的地址映射 主存的替换策略 缓存的写操作策略 Pentium 4 的缓存组织 使用多级缓存减少缺失损失 结论 在计算机系统中,缓存存储器(Cache Memory)发挥着至关重要的作用。它充当处理器和主存之间的高速缓冲区&am…...
『大模型笔记』工程师的LLMs简介!
💡工程师的LLMs简介 ! 文章目录 1. Embeddings Conceptually(嵌入的概念)1.1. One-hot Encodings(独热编码)1.2. Embeddings(嵌入)2. LLM Basics(LLM 基础知识)3. Autoregressive LLMs(自回归LLMs)4. Where to go from here(何去何从?)5. 参考文献https://devo…...
Vue中的常用指令
Vue 会根据不同的【指令】,针对标签实现不同的【功能】 概念:指令(Directives)是 Vue 提供的带有 v- 前缀 的 特殊 标签属性。 为啥要学:提高程序员操作 DOM 的效率。 vue 中的指令按照不同的用途可以分为如下 6 大…...
百度页面奔跑的白熊html、css
一、相关知识-动画 1.基本使用:先定义再调用 2. 调用动画 用keyframes定义动画(类似定义类选择器) keyframes动画名称{ 0%{ width:100px; } 100%{ width:200px; } } 使用动画 div { width:200px; height:200px; background-…...
Day-02面向对象
一、匿名函数 和函数的作用一致,都是进行代码逻辑的封装, 区别1 在定义时,匿名函数可以不指定函数的名字 区别2 匿名函数执行实现简单的计算 区别3 匿名函数会自动将计算的结果返回 定义格式 lambda 参数1,参数2...:计算逻辑(参数的处理逻辑…...
Sentinel-2 哨兵二号数据介绍及下载
1 Sentinel-2简介 SENTINEL-2 is a European wide-swath, high-resolution, multi-spectral imaging mission. Sentinel-2 是高分辨率多光谱成像卫星,一颗卫星的重访周期为10天,两颗互补,重访周期为5天。分为2A和2B两颗卫星。2A于2015年6月…...
阿里智能信息数据挖掘复盘
(嘻嘻——不嘻嘻) 挫败呜呜呜,钉钉忘装,还要手机登录,迟到三分钟。 一上来就问项目,没有自我介绍。 第一篇的重要特征是什么直接忘记,正负样本比,过拟合的判断标准,特…...
SEO_ 揭秘影响搜索引擎排名的核心SEO因素
SEO的核心因素解析:提升搜索引擎排名的关键路径 在当今数字化时代,搜索引擎优化(SEO)已经成为每个网站和企业获取有效流量的重要途径。究竟有哪些核心因素影响搜索引擎的排名呢?本文将深入探讨这些核心SEO因素&#x…...
从CPython 3.12到3.14:我们逆向了217个AOT相关PR,提炼出6个决定编译成功率的核心宏定义(含Py_BUILD_CORE_MODULE与Py_LIMITED_API冲突解决方案)
第一章:Python 原生 AOT 编译方案 2026 高级开发技巧Python 社区在 2026 年迎来关键演进:CPython 官方正式集成原生 Ahead-of-Time(AOT)编译能力,无需依赖第三方运行时或 JIT 层即可生成平台专用的静态可执行文件。该特…...
QT 生成动态链接库
QT 生成动态链接库 前言 一、创建新的动态库项目(Qt Creator) 1 新建项目 二 、 自动生成的文件结构 1 项目会包含一个导出宏定义头文件,例如 Test001_global.h: 2 在需要导出的类或函数前加上 TEST001_EXPORT(我自己测试不加也行): 3 crtl+B 或者点击左下角锤子 进行编译…...
气象数据可视化实战:从雷达图到三维风场,前端技术栈全解析
气象数据可视化实战:从雷达图到三维风场,前端技术栈全解析 气象数据的可视化一直是前端开发领域最具挑战性的方向之一。想象一下,当你需要将每小时更新的全球气象数据转化为直观的动态图像,让气象学家一眼就能看出台风路径、让飞行…...
寒冬降临:当资本撤出AI测试赛道
2026年初,全球资本市场对AI技术的狂热投资骤然降温。随着VC基金转向更保守的资产配置,依赖融资的AI测试工具开发商面临生存危机:初创公司批量裁员,开源项目停止维护,企业采购的智能测试平台因无法续约沦为“断线木偶”…...
配置MyBatis-Plus打印执行的 SQL 语句到控制台或日志文件中
配置MyBatis-Plus打印 1. 使用 log4j 或 logback 配置 MyBatis-Plus 支持多种日志框架,如 SLF4J, Commons Logging, Log4J, Log4J2 和 JDK logging。这里以 Logback 为例说明如何配置。 在你的 logback.xml 文件中添加如下配置: <configuration>&l…...
3步实现GitHub资源精准提取:开发者必备的效率工具
3步实现GitHub资源精准提取:开发者必备的效率工具 【免费下载链接】DownGit github 资源打包下载工具 项目地址: https://gitcode.com/gh_mirrors/dow/DownGit 你是否曾遇到这样的困境:急需从GitHub仓库中获取一个特定文件夹,却不得不…...
AI学习路线及建议
1.python快速入门(边用边学,建议3天) 2.人工智能必备数学的基础(边用边学,建议3天) 3.机器学习(找工作面试考点,临面试前晚一点刷) 数据分析:短期找工作 ML/D…...
2026最权威的六大降重复率工具解析与推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 飞速发展的人工智能技术,正深切地重塑着学术写作的范式,当下…...
OpCore-Simplify:如何将黑苹果EFI配置从3小时缩短到15分钟?
OpCore-Simplify:如何将黑苹果EFI配置从3小时缩短到15分钟? 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在开源系统定制领域…...
