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 …...
浅谈网络安全态势感知
前言 网络空间环境日趋复杂,随着网络攻击种类和频次的增加,自建强有力的网络安全防御系统成为一个国家发展战略的一部分,而网络态势感知是实现网络安全主动防御的重要基础和前提。 什么是网络安全态势感知? 态势感知一词来源于对…...
cesium本地文档-天空盒-arcgis切片404-服务查询
1.vite-plugin-cesium // vite-plugin-cesium 是一个 Vite 插件,用于在 Vite 项目中轻松集成和使用 Cesium 地图引擎。它简化了在 Vite 项目中使用 Cesium 的配置和引入过程。 // 具体来说,vite-plugin-cesium 主要提供了以下功能: // 自动…...
OpenMv图片预处理
本博客讲述的是获取一张图片首先对图像进行处理,比如畸形矫正,图像滤波等操作。 1.histeq()自适应直方图均衡 # 自适应直方图均衡例子 # # 此示例展示了如何使用自适应直方图均衡来改善图像中的对比度。 #自适应直方图均衡将图像分割成区域,然后均衡这些区域中的直方图,…...
Springboot 实战运用
一,基本配置 1,pom文件配置介绍 1.1继承 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.2</version><relativePath/> <…...
kafka的安装与简单使用
下载地址:Apache Kafka 1. 上传并解压安装包 tar -zxvf kafka_2.13-3.6.2.tgz 修改文件名:mv kafka_2.13-3.6.2 kafka 2. 配置环境变量 sudo vim /etc/profile #配置kafka环境变量 export KAFKA_HOME/export/server/kafka export PATH$PATH:$KAFKA…...
【服务器部署篇】Linux下Node.js的安装和配置
作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产…...
【OrangePi AIpro】香橙派 AIpro 为AI而生
产品简介 OrangePi AIpro(8T):定义边缘智能新纪元的全能开发板 在当今人工智能与物联网技术融合发展的浪潮中,OrangePi AIpro(8T)凭借其强大的硬件配置与全面的接口设计,正逐步成为开发者手中的创新利器。这款开发板不仅代表了香橙派与华为…...
AES算法
收集了几个博主 1、https://blog.csdn.net/shaosunrise/article/details/80219950 2、AESECB加密算法 C 语言代码实现_c语言aes-256-cbc-CSDN博客 3、https://www.cnblogs.com/hello-/articles/8718186.html 4、AES加密过程详解-CSDN博客 5、AES加密算法原理的详细介绍与实…...
自主创新助力科技强军,麒麟信安闪耀第九届军博会
由中国指挥与控制学会主办的中国指挥控制大会暨第九届北京军博会于5月17日-19日在北京国家会议中心盛大开展,政府、军队、武警、公安、交通、人防、航天、航空、兵器、船舶、电科集团等从事国防军工技术与产业领域的30000多名代表到场参加。 麒麟信安作为国产化方案…...
Android Retrofit 封装模版
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、加上网络访问的权限二、引入依赖三、由API生成JavaBean四、封装Retrofit五、调用 一、加上网络访问的权限 <uses-permission android:name"android.p…...
【介绍下运维开发】
🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...
mybatis-plus中多条件查询使用and合or嵌套使用
背景 在实际项目中,数据库条件查询经常需有一些复杂的查询条件的SQL语句,将这些SQL语句用mybatis-plus 组件的实现的时候经常会费一些时间,下面对几种常见的SQL语句实现做个介绍以方便以后遇到时少走弯路提高开发效率。 案例 Data public class User{ …...
前端加密的方式汇总
目录 一、Base64编码 二、哈希算法 三、对称加密(AES/DES) 四、非对称加密(RSA) 五、加盐 六、Web Cryptography API 七、总结 随着信息和数据安全重要性的日益凸显,如何保证信息数据在传输的过程中的安全成为开发者重点关注的内容。前端加密通常是指在浏览…...
ELT 同步 MySQL 到 Doris
如何基于 Flink CDC 快速构建 MySQL 到 Doris 的 Streaming ELT 作业,包含整库同步、表结构变更同步和分库分表同步的功能。 本教程的演示都将在 Flink CDC CLI 中进行,无需一行 Java/Scala 代码,也无需安装 IDE。 准备阶段 # 准备一台已经…...
100个 Unity小游戏系列七 -Unity 抽奖游戏专题五 刮刮乐游戏
一、演示效果 二、知识点讲解 2.1 布局 void CreateItems(){var rewardLists LuckyManager.Instance.CalculateRewardId(rewardDatas, Random.Range(4, 5));reward_data_list reward_data_list ?? new List<RewardData>();reward_data_list.Clear();for (int i 0; …...
链游:区块链技术的游戏新纪元
随着区块链技术的快速发展,越来越多的行业开始探索与其结合的可能性,其中,游戏行业与区块链的结合尤为引人注目。链游,即基于区块链技术的游戏,正以其独特的优势,为玩家带来全新的游戏体验。本文将对链游进…...
格式化字符串
自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 格式化字符串是指先制定一个模板,在这个模板中预留几个空位,然后再根据需要填上相应的内容。这些空位需要通过指定的符号标记…...
错误信息:Traceback (most recent call last):
错误信息 Traceback (most recent call last): File "E:\python.learning\pythonDateExcavateTreat\数据挖掘课程设计\2_京东用户意向购买数据探索.py", line 74, in <module> df_ui df_ui.to_frame().reset_index() File "E:\python.learning\lib\site-…...
Thinkphp3.2.3网站后台不能访问如何修复
我是使用Thinkphp3.2.3新搭建的PHP网站,但是网站前台可以访问,后台访问出现如图错误: 由于我使用的Hostease的Linux虚拟主机产品默认带普通用户权限的cPanel面板,对于上述出现的问题不清楚如何处理,因此联系Hostease的…...
【花雕学AI】打破AI轻量化极限!MimiClaw:5美元芯片上跑的纯 C 轻量 AI 智能体
提到AI智能体,很多人的第一印象是“需要高性能服务器支撑”“离不开复杂操作系统”“功耗高到不敢长时间运行”——但MimiClaw的出现,彻底打破了这种固有认知。作为全球首个能在仅售5美元的ESP32-S3芯片上流畅运行的纯C编写轻量AI智能体,Mimi…...
XMind快捷键背不会?试试我这套‘肌肉记忆’训练法,用这5个高频组合搞定80%的绘图
XMind快捷键肌肉记忆训练法:5个高频组合提升80%绘图效率 刚接触XMind时,我总在菜单栏里来回翻找功能按钮,每次画完一张思维导图手腕都隐隐发酸。直到发现产品总监小王能在十分钟内完成我半小时的工作量——他的双手几乎没离开过键盘ÿ…...
别再手动切换收发!用SP3485芯片实现RS485自动收发电路的保姆级教程
用SP3485芯片实现RS485自动收发电路的完整设计指南 在工业控制、楼宇自动化等长距离通信场景中,RS485接口因其抗干扰能力强、传输距离远等优势成为首选。然而传统RS485设计需要手动控制收发使能信号,不仅增加软件复杂度,还容易因时序错误导致…...
从零构建CPWC超声成像仿真:Field II实战与模块化工作流解析
1. CPWC超声成像仿真入门指南 第一次接触CPWC超声成像仿真时,我被各种专业术语和复杂的数学公式搞得晕头转向。经过几个月的实战摸索,终于总结出一套小白也能快速上手的方法。CPWC(相干平面波复合)是近年来超声成像领域的热门技术…...
保姆级避坑指南:用VMware ESXi 8.0给vCenter Server 8.0单独划个“家”(存储+网络配置详解)
VMware ESXi 8.0环境下的vCenter Server 8.0专属部署指南 在虚拟化环境中,vCenter Server作为整个VMware生态系统的"大脑",其部署的稳定性和可靠性直接影响整个虚拟化平台的运行质量。本文将深入探讨如何在ESXi 8.0环境中为vCenter Server 8.0…...
3分钟打造个性化英雄联盟体验:LeaguePrank工具让段位展示彻底自定义
3分钟打造个性化英雄联盟体验:LeaguePrank工具让段位展示彻底自定义 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 你是否曾想在好友面前展示独特的游戏段位?是否希望自己的游戏生涯页面与众不同&…...
Youtu-Parsing镜像免配置:预置outputs目录权限+日志轮转自动配置
Youtu-Parsing镜像免配置:预置outputs目录权限日志轮转自动配置 1. 引言:告别繁琐配置,专注文档解析 如果你用过一些AI模型,肯定遇到过这样的麻烦:好不容易把服务跑起来了,结果发现生成的图片没地方保存&…...
XUnity.AutoTranslator游戏翻译解决方案:从入门到精通的实战指南
XUnity.AutoTranslator游戏翻译解决方案:从入门到精通的实战指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾因语言障碍错失优秀的Unity游戏体验?面对满屏外文界面感到…...
AI头像生成器新手教程:5个常用风格关键词+3类背景模板Prompt速查表
AI头像生成器新手教程:5个常用风格关键词3类背景模板Prompt速查表 1. 快速了解AI头像生成器 AI头像生成器是一个帮你设计专属头像创意的智能工具。你只需要简单描述想要的头像风格,它就能生成详细的描述文案,这些文案可以直接用在Midjourne…...
从“偏科生”GPT-3到“全能选手”:聊聊MMLU基准如何推动大模型进化
从“偏科生”到“全能选手”:MMLU基准如何重塑大模型进化路径 当GPT-3在2020年以1750亿参数震惊世界时,人们很快发现这个"天才"存在明显的知识盲区——它在某些专业领域的表现堪比专家,却在另一些基础学科上失误频频。这种"偏…...
