Activity生命周期的一些场景流程总结

Activity的启动流程分析与总结 前言 ​看了数片分析Activity启动流程的文章,但是自从看了《Android进阶解密》关于Activity启动流程的分析,我就放弃了自己撸一遍的念头。因为书里关于这部分的分析比较详细。这里记录一下书中关于Activity的启动流程。加深一下印象,便于以后温习查看。 Activity的启动过程分为两种,一种是根Activity的启动过程,可以认为是初次点击桌面的应用图标,启动Manifest中注册的作为应用的启动页面的Activity。根Activity的启动过程也可以理解为应用程序的启动过程。另一种就是 阅读详情

熟悉安卓界面的小伙伴们应该都知道activity的生命周期,分别是onCreate、onStart、onResume、onPause、onStop、onDestroy、onRestart,我们今天主要是来一起看看常见场景下activity生命周期的调用流程。以android12 api31的手机为例

场景1:正常界面的启动

        onCreate -> onStart -> onResume

场景2:先从A界面跳转到B界面

        A onPause -> B onCreate -> B onStart -> B onResume -> A onStop -> A onSaveInstanceState

        再从B界面返回到A界面

        B onPause -> A onRestart -> A onStart -> A onResume -> B onStop -> B onDestroy

场景3:当前界面按下锁屏键

        onPause -> onStop -> onSaveInstanceState

        再打开屏幕

        onRestart -> onStart -> onResume

场景4:当前界面按下HOME键

        onPause -> onStop -> onSaveInstanceState

        再点击任务键或桌面直接打开此应用

        onRestart -> onStart -> onResume

场景5:当前界面按下任务菜单键

        onPause -> onStop -> onSaveInstanceState

        再点击清除杀掉此进程

        什么周期也没走

场景6:当前界面按下任务菜单键

        onPause -> onStop -> onSaveInstanceState

        然后点击应用再次进入

        onRestart -> onStart -> onResume

场景7:横竖屏切换(未配置configChanges)

        onPause -> onStop -> onSaveInstanceState -> onDestroy -> onCreate(savedInstanceState不为空) -> onStart -> onRestoreInstanceState -> onResume

场景8:横竖屏切换(配置configChanges="orientation|screenSize")

        onConfigurationChanged

注:

1.横竖屏切换一些注意事项:

Activity的AndroidManifest.xml中设置android:configChanges

1)不添加configChanges = orientation = keyboardHidden = screenSize = orientation|keyboardHidden = keyboardHidden|screenSize,切换横竖屏过程中生命周期是相同的

2)orientation|screenSize,横竖屏切换不不会重新调用各个生命周期,只会执行onConfigurationChanged方法

3)自从Android3.2(API13), 在设置Activity的 android:configChanges="orientation |keyboardHidden"后,还是一样会重新调用各个生命周期的。因为screensize也开始跟着设备的横竖切换而改变。

4)Android3.2(API13)之前:

        (1)不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

        (2)设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

        (3)设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

2.onSaveInstanceState方法

在某种时机下,Activity会调用onSaveInstanceState方法通过保存Bundle参数来保存当前的Activity的数据。onSaveInstanceState方法总是会在onStop后调用。

发生以下等情况会被调用:

        按下HOME键切到后台时

        锁屏时(按下电源键或自动锁屏)

        从该Activity中启动一个新的Activity时

        横竖屏切换时 (前提是Activity的configChanges属性配置了orientation)

3.onRestoreInstanceState方法

当Activity被重新创建(横竖屏切换,或者被系统强杀重启后的重新创建)之后就会调用onRestoreInstanceState,而它的Bundle参数,就是onSaveInstanceState方法保存的。onRestoreInstanceState这个方法会在onStart后调用。

发生以下等情况会被调用:

        Activity在后台的情况下,被系统强杀了,再次打开Activity时

        横竖屏切换时 (会走activity生命周期的情况)

Activity生命周期以及launchMode对生命周期的影响 本文主要描述一下Activty的生命周期,以及launchMode对生命周期的影响,onNewIntent,onSaveInstanceState,onRestoreInstanceState方法何时调用 Activity生命周期图 下面对上图Activity的生命周期进行一下描述 1,启动Activity,系统会先调用onCreate方法,然后调用onStart方法,然后调用onR 阅读详情

相关推荐

Android中的Activity生命周期和启动流程详解

了解Activity的生命周期对于开发Android应用程序非常重要,可以帮助开发者在适当的时机执行一些必要的操作,如资源的释放和数据的保存等。启动Activity的生命周期方法:当调用startActivity()方法时,Android系统会检查要启动的Activity是否存在,并且将其添加到启动堆栈中。调用startActivity()方法:要启动一个新的Activity,我们可以通过调用当前Activity的startActivity()方法来实现。一、Activity的生命周期。

CodeSpark的博客 355

Activiti 工作流入门到大神

什么是流程、工作流作用、Activiti背景简介、Activiti流程设计器安装、Activity环境搭建、通过HelloWorld掌握 Activiti操作流程的步奏、常见API使用、流程部署管理(发布流程、查看流程定义、删除流程、查看流程附件)、流程实例管理(启动流程、查看任务、认领任务、办理任务、查看流程状态)

从Starlink看NTN:SSB波束数量少,用户体验真的会差吗?

当SpaceX的Starlink以每月新增上百颗卫星的速度扩张其星座时,一个有趣的技术现象正在引发行业讨论:为何这个全球最大的低轨卫星网络选择使用相对较少的波束数量?波束数量的选择远非简单的技术参数,而是系统设计哲学、商业策略与终端用户体验的复杂平衡。传统地面网络可以依赖密集基站实现精准覆盖,而卫星通信必须面对一个根本性挑战:如何在数百公里的高空,用有限的射频资源服务广阔的地理区域。当我们在撒哈拉沙漠测试不同波束方案时,发现了一个关键洞见:最佳波束数量不是固定的技术参数,而是随网络发展阶段变化的动态值。

weixin_32308101的博客 332

Activiti7流程操作详解

流程定义是线下按照bpmn2.0标准去描述 业务流程,通常使用idea中的插件对业务流程进行建模。使用idea下的designer.bpmn和.png查询流程相关信息也是经常要用到的操作,通常包含对流程定义,流程部署,流程定义版本的查询。/*** 查询流程定义// 1.创建流程引擎 ProcessEngine processEngine = ProcessEngines . getDefaultProcessEngine();

qq_44749491的博客 1万+

5G NR上行控制信道PUCCH

一、PUCCH概述 PUCCH用于承载上行控制信息,相比LTE,NR PUCCH支持5种不同的格式,按照时域上所占用的符号数量可以分为短格式和长格式两种,如下表所示,短格式占用1-2个符号,可以承载1-2bit信息,长格式占用4-14个符号,可承载大于2bit的信息。NR引入短格式PUCCH的目的是可以缩短HARQ-ACK反馈的时延,长格式仍然是考虑到持续时间长可以保证覆盖。 NR中,考虑到系...

一个关于5G NR的博客^^ 3万+

别再为数据发愁:5分钟理解事件相机原理,并自己动手生成事件图像

本文深入浅出地解析了事件相机的工作原理,并提供了从静态图像生成事件数据的实用方法。通过Python代码示例,读者可以快速掌握如何模拟事件相机的输出,应用于机器人导航、自动驾驶等领域,解决数据获取难题。

weixin_31458015的博客 300

Activiti7工作流入门和基本使用-Activiti入门和流程操作

五、Activiti入门 在本章内容中,我们来创建一个Activiti工作流,并启动这个流程。 创建Activiti工作流主要包含以下几步: 1、定义流程,按照BPMN的规范,使用流程定义工具,用流程符号把整个流程描述出来 2、部署流程,把画好的流程定义文件,加载到数据库中,生成表的数据 3、启动流程,使用java代码来操作数据库表中的内容 5.1 流程符号 BPMN 2.0是业务流程建模符号2.0的缩写。 它由Business Process Management Init

学习笔记 3958

从零开始理解二极管限幅:5种典型电路设计及实际应用场景解析

本文系统解析了二极管限幅电路的五大经典拓扑,包括串联与并联型上下限幅及双向限幅。通过剖析其核心原理与二极管的单向导电性、正向压降特性,结合ADC输入保护、电源管理、音频处理等实际应用场景,提供了从器件选型到设计陷阱规避的完整实战指南,帮助工程师为信号构建可靠的“安全笼”。

2y3u4i5o6p的博客 1034

(十一)安卓开发中的Activity及其生命周期详解

在安卓开发中,Activity是应用的一个核心组件,它代表了用户界面中的一个屏幕。用户通过Activity与应用交互,例如点击按钮、输入文本等。每个Activity都有自己的生命周期,Android系统会根据用户操作或系统需求调用相应的生命周期方法。Activity是安卓应用的基础组件,掌握其生命周期对于开发健壮的应用至关重要。通过合理利用生命周期方法,你可以确保应用在创建、运行、暂停、停止和销毁等不同状态下都能正确响应用户操作和系统事件。

cuijiying的博客 1125

单细胞转录组分析(scRNA-seq)

单细胞转录组测序(Single-cell RNA sequencing,scRNA-seq)是一种高通量测序技术,可以在单细胞水平解析基因表达情况,揭示细胞异质性,探索稀有细胞类型,并研究细胞状态转换及动态调控机制。与传统的。

大甘的博客 6148

树莓派烧录验证失败:跳过验证步骤实现成功启动的实用技巧

本文针对树莓派烧录系统时常见的验证失败问题,提供了跳过验证步骤实现成功启动的实用技巧。通过分析Windows与Linux文件系统差异导致的SD卡验证报错,指导用户在烧录完成后立即关闭验证窗口,或使用BalenaEtcher等第三方工具规避问题,确保树莓派正常启动。

yyy34的博客 949

Activity生命周期全流程详解

摘要:本文详细介绍了Android Activity生命周期的核心方法、流程及最佳实践。通过代码示例展示了onCreate()到onDestroy()各阶段的关键操作,包括状态保存与恢复、资源释放等。分析了不同场景(如启动、返回、旋转)的生命周期调用顺序,并提供了表单保存、防内存泄漏等实用解决方案。附生命周期流程图解和常见问题处理方法,帮助开发者合理管理Activity资源与状态。

时小雨的专栏 669

智能汽车域控制器FOTA升级方案探讨

上文提到的Entry属性,包括Active 属性, Bootable 属性, Successful 属性, Retrycnt 属性 ,Active 属性用于标志槽的优先级,bootloader优先选择Active 属性=1的槽启动,Bootable 属性标志槽可否可启动,Successful 属性标志槽是否成功启动过,Retrycnt 属性标志槽可尝试启动的次数。芯片启动后,首先进入Bootloader阶段,此阶段将读取存储系统的分区属性,根据属性值进行逻辑判断,并确定进入哪个分区,详见流程图。

huibian1234的博客 1570

Carson带你学Android:那些关于Fragment生命周期,你了解多少?

本文全面讲解Fragment生命周期的所有相关知识

Carson带你学Android 2027

小程序跳转链接实战:https://wxaurl.cn/、weixin://dl/business/ 跳转与明文 URL Scheme 生成指南

本文聚焦小程序跳转链接开发核心技术,深入解析 https://wxaurl.cn/*TICKET* 与 weixin://dl/business/?t= *TICKET* 两种链接的生成方法。详细阐述生成前的准备工作、服务端接口调用步骤及注意事项,同时剖析 iOS 与 Android 系统在链接适配方面的差异。此外,针对明文 URL Scheme 获取,从平台设置、拼接规则、使用限制等方面展开讲解,并结合实际应用案例提出优化建议,帮助开发者快速掌握小程序跳转链接生成与明文URL Scheme获取的关键技术。

邓邓子的博客 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android全面解析之Activity生命周期

前言 很高兴遇见你~ 欢迎阅读我的文章。 关于Activity生命周期的文章,网络上真的很多,有很多的博客也都讲得相当不错,可见Activity的重要性是非常高的。事实上,我猜测每个android开发者接触的第一个android组件都是Activity。我们从新建第一个Activity开始,运行了代码,看到模拟机上显示了一个MainActivity标题和一行HolleWorld,从此打开Android世界的大门。 本篇文章讲解的重点是Activity的生命周期,在文章的最后也会涉及Activity的设计。不

一只修仙的猿 3221

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

浅谈Android之Activity生命周期

浅谈Android之Activity生命周期  Activity作为四大组件之一,出现的频率相当高,基本上我们在android的各个地方都能看见它的踪影,因此深入了解Activity,对于开发高质量应用程序是很有帮助的。今天我们就来详细地聊聊Activity的生命周...

angyunlin5641的博客 225

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Android开发——Activity的生命周期

文章目录一、Activity生命周期的四个状态二、Activity生命周期的七个方法三、生命周期的实例四、一个Activity的生命周期流程 一、Activity生命周期的四个状态 运行状态 处于可见并可和用户交互的状态 暂停状态 一个Activity被另外一个透明Activity或Dialog的Activity覆盖,但是任然可见,失去与用户交互的能力 停止状态 一个Activity被另外一个透明Activity或Dialog的Activity完全覆盖,依然保持所有的状态和成员信息,但是不可见 断开状态

Harriet的博客 1550

Activity 生命周期详解

Activity的生命周期 Activity的重要性,可以说Activity是app的基石,一个应用必不可缺少的组件,提供与用户交互的可视化界面。既然Activity这么重要我们来深入了解下Activity相关知识Activity的生命周期。 Activity的生命周期可以分为两部分内容 典型的生命周期 异常的生命的周期 典型的生命周期 典型的生命周期会走完整个生命周期的方法 ...

苏打水解渴的博客 527

Android之Activity生命周期浅析

转载自:https://blog.youkuaiyun.com/javazejian/article/details/51932554  Activity作为四大组件之一,出现的频率相当高,基本上我们在android的各个地方都能看见它的踪影,因此深入了解Activity,对于开发高质量应用程序是很有帮助的。今天我们就来详细地聊聊Activity的生命周期,以便我们在以后的开发中能如鱼得水。一、初识Activ...

Tomes.V.White 3万+

Android Activity详解

Android Activity详解 1.什么是Activity Activity是一个Android的应用组件,它提供屏幕进行交互。每个Activity都会获得一个用于绘制其用户界面的窗口,窗口可以充满哦屏幕也可以小于屏幕并浮动在其他窗口之上。 一个应用通常是由多个彼此松散联系的Activity组成,一般会指定应用中的某个Activity为主活动,也就是说首次启动应用时给用户呈现的Ac...

fjnu_se的博客 13万+

Activity的生命周期和启动模式

正常情况下生命周期:onCreate()-->onStart()-->onResume()-->onPause()-->onStop-->onDestroy 弹出Dialog恢复时:onPause()-->onResume().... 进入后台恢复时:onStop()-->onRestart()-->onStart()....   异常情况下:onSaveInstan

qiangzi9009的专栏 663

Activity启动模式中的生命周期

彻底明白Activity启动模式中的生命周期,从此不再成为面试难点。

wang_yong_hui_1234的博客 253

Activity生命周期

文章目录生命周期特殊情况下的生命周期 onCreate 当Activity第一次创建时会被调用。 onRestart 表示Activity正在重新启动 onStart 表示Activity正在被启动,即将开始 onResume 表示Activity已经可见,并且出现在前台开始活动 onPause 表示Activity正在停止,仍可见,正常情况下,紧接着onStop就会被调用。 onStop 表示Activity即将停止,不可见,位于后台 onDestroy 表示即将销毁。

weixin_42789301的博客 315

Android之Activity(二)生命周期

Activity 处于活动状态,此 Activity 位于屏幕前台并具有用户焦点。此时Activity 处于栈顶,是可见状态,可与用户进行交互。

LeoYan的博客 677
上一篇: flutter自定义显示弹框dialog工具类使用
下一篇: Android自动换行的流式布局
Over_dose
博客等级 码龄10年 9粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值