当前位置: 首页 > news >正文

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驱动&#xff1a; 1&#xff1a;第一步官网下载驱动&#xff1a; 官网地址如下&#xff1a; CP210x USB to UART Bridge VCP Drivers - Silicon Labs 第二步&#xff1a;解压文件夹并安装如图所示&#xff1a; 3&#xff1a;第三步安装成功后会给你个提示…...

Django缓存

由于Django是动态网站&#xff0c;所有每次请求均会去数据进行相应的操作&#xff0c;当程序访问量大时&#xff0c;耗时必然会更加明显&#xff0c;最简单解决方式是使用&#xff1a;缓存&#xff0c;缓存将一个某个views的返回值保存至内存或者memcache中&#xff0c;若某个时…...

Python 元组

&#xff08;1&#xff09;元组中只包含一个元素时&#xff0c;需要在元素后面添加逗号&#xff1a; tup1 (50,); &#xff08;2&#xff09;元组中的元素值是不允许修改的&#xff0c;但我们可以对元组进行连接组合&#xff1a; tup1 (12, 34.56); tup2 (abc, xyz);# 以…...

JAVA面试题大全(十八)

1、说一下 jvm 的主要组成部分&#xff1f;及其作用&#xff1f; 类加载器&#xff08;ClassLoader&#xff09;运行时数据区&#xff08;Runtime Data Area&#xff09;执行引擎&#xff08;Execution Engine&#xff09;本地库接口&#xff08;Native Interface&#xff09;…...

如何利用Firebase Hosting来托管网站

文章目录 如何利用Firebase Hosting来托管网站前提条件详细步骤1. 安装 Firebase CLI2. 登录 Firebase3. 初始化 Firebase 项目4. 准备网站文件5. 部署到 Firebase6. 配置自定义域名&#xff08;可选&#xff09; 常见问题 如何利用Firebase Hosting来托管网站 以下是更详细的…...

揭秘“循环消费”模式:消费即收益,购物新体验

亲爱的朋友们&#xff0c;大家好&#xff0c;我是李华。今天&#xff0c;我要为大家介绍一种正在悄然兴起的商业模式——“循环消费”。你是否曾想过&#xff0c;在消费的同时&#xff0c;还能获得额外的收益和回馈&#xff1f;这种新型模式正在逐渐改变我们的购物体验。 近期&…...

图片怎样在线改像素大小?电脑快速修改图片大小的方法

在设计图片的时候下载的图片尺寸一般会比较大&#xff0c;在网上使用经常会因为尺寸的问题导致无法正常上传&#xff0c;那么如何快速在线改图片大小呢&#xff1f;想要修改图片尺寸可以在直接选择网上的图片改大小工具的功能来快速完成修改&#xff0c;操作简单方便使用&#…...

SELINUX=enforcing时无法启动httpd服务的解决方案(semanage命令以及setroubleshoot-server插件的妙用)

一、问题描述&#xff1a; 当/etc/selinux/conf被要求必须是SELINUXenforcing&#xff0c;不被允许使用setenforce 0宽松模式 我们启动httpd就会报错&#xff1a; Job for httpd.service failed because the control process exited with error code. See "systemctl s…...

【C++】list的使用方法和模拟实现

❤️欢迎来到我的博客❤️ 前言 list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中通过指针指向其前一个元素和后…...

【物联网实战项目】STM32C8T6+esp8266/mqtt+dht11+onenet+uniapp

一、实物图 前端uniapp效果图&#xff08;实现与onenet同步更新数据&#xff09; 首先要确定接线图和接线顺序&#xff1a; 1、stm32c8t6开发板连接stlinkv2下载线 ST-LINK V2STM323.3V3.3VSWDIOSWIOSWCLKSWCLKGNDGND 2、ch340串口连接底座&#xff08;注意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 []# 空节点&#xff0c;直接返回if not root:return resque [roo…...

Flutter 中的 FadeTransition 小部件:全面指南

Flutter 中的 FadeTransition 小部件&#xff1a;全面指南 在 Flutter 中&#xff0c;动画是一种吸引用户注意力并提供流畅用户体验的强大工具。FadeTransition 是 Flutter 提供的一个动画小部件&#xff0c;它允许子组件在不透明度上进行渐变&#xff0c;从而实现淡入和淡出效…...

缓存存储器:性能提升的关键

目录 基本原理 主存与缓存的地址映射 主存的替换策略 缓存的写操作策略 Pentium 4 的缓存组织 使用多级缓存减少缺失损失 结论 在计算机系统中&#xff0c;缓存存储器&#xff08;Cache Memory&#xff09;发挥着至关重要的作用。它充当处理器和主存之间的高速缓冲区&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 会根据不同的【指令】&#xff0c;针对标签实现不同的【功能】 概念&#xff1a;指令&#xff08;Directives&#xff09;是 Vue 提供的带有 v- 前缀 的 特殊 标签属性。 为啥要学&#xff1a;提高程序员操作 DOM 的效率。 vue 中的指令按照不同的用途可以分为如下 6 大…...

百度页面奔跑的白熊html、css

一、相关知识-动画 1.基本使用&#xff1a;先定义再调用 2. 调用动画 用keyframes定义动画&#xff08;类似定义类选择器&#xff09; keyframes动画名称{ 0%{ width:100px&#xff1b; } 100%{ width:200px; } } 使用动画 div { width:200px; height:200px; background-…...

Day-02面向对象

一、匿名函数 和函数的作用一致&#xff0c;都是进行代码逻辑的封装&#xff0c; 区别1 在定义时&#xff0c;匿名函数可以不指定函数的名字 区别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 是高分辨率多光谱成像卫星&#xff0c;一颗卫星的重访周期为10天&#xff0c;两颗互补&#xff0c;重访周期为5天。分为2A和2B两颗卫星。2A于2015年6月…...

阿里智能信息数据挖掘复盘

&#xff08;嘻嘻——不嘻嘻&#xff09; 挫败呜呜呜&#xff0c;钉钉忘装&#xff0c;还要手机登录&#xff0c;迟到三分钟。 一上来就问项目&#xff0c;没有自我介绍。 第一篇的重要特征是什么直接忘记&#xff0c;正负样本比&#xff0c;过拟合的判断标准&#xff0c;特…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

高考志愿填报管理系统---开发介绍

高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发&#xff0c;采用现代化的Web技术&#xff0c;为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## &#x1f4cb; 系统概述 ### &#x1f3af; 系统定…...

DeepSeek越强,Kimi越慌?

被DeepSeek吊打的Kimi&#xff0c;还有多少人在用&#xff1f; 去年&#xff0c;月之暗面创始人杨植麟别提有多风光了。90后清华学霸&#xff0c;国产大模型六小虎之一&#xff0c;手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水&#xff0c;单月光是投流就花费2个亿。 疯…...

精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑

精益数据分析&#xff08;98/126&#xff09;&#xff1a;电商转化率优化与网站性能的底层逻辑 在电子商务领域&#xff0c;转化率与网站性能是决定商业成败的核心指标。今天&#xff0c;我们将深入解析不同类型电商平台的转化率基准&#xff0c;探讨页面加载速度对用户行为的…...