Android Activity的生命周期和启动模式

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

参考:
《Android开发艺术探索》

1. Activity 的正常生命周期

完整的activity生命周期如下所示

在这里插入图片描述

生命周期的几点注意事项:

  1. Activity 第一次启动:onCreate->onStart->onResume。
  2. Activity 切换到后台( 用户打开新的 Activity 或者切换到桌面) ,onPause->onStop(如果新 Activity 采用了透明主题,则当前 Activity 不会回调 onstop)。
  3. Activity 从后台到前台,重新可见,onRestart->onStart->onResume。
  4. 用户退出 Activity,onPause->onStop->onDestroy。
  5. onStart 开始到 onStop 之前,Activity 可见。onResume 到 onPause 之前,Activity 可以接受用户交互。
  6. 在新 Activity 启动之前,栈顶的 Activity 需要先 onPause 后,新 Activity 才能启动。所以不能在 onPause 执行耗时操作。
  7. onstop 和 ondestroy 不一定回调,例如直接kill掉app的情况,因为上衣activity的 onstop 的触发是在下一个activity的onresume 之后的。

2. Activity 异常情况生命周期

例如 Activity 处于竖屏状态,如果突然旋转屏幕,由于系统配置发生了改变,Activity 就会被销毁并重新创建。在异常情况下系统会在 onStop 之前调用 onSaveInstanceState 来保存状态。Activity 重新创建后,会在 onStart 之后调用 onRestoreInstanceState 来恢复之前保存的数据。


保存数据的流程:

  1. Activity 被意外终止,调用 onSaveIntanceState 保存数据
  2. Activity 委托 Window,Window 委托它上面的顶级容器一个 ViewGroup( 可能是 DecorView) ,然后顶层容器在通知所有子元素来保存数据。
  3. 委托的方法是 View 的 dispatchSaveInstanceState/dispatchRestoreInstanceState 和 onSaveIntanceState / onRestoreInstanceState ,这里和View 的分发机制非常相像,这种与 View-ViewGroup 结构相契合的委托方式,形成了Android Vie
ActivitysingleTask模式时的生命周期 ActivitysingleTask模式时的生命周期 Activity A:android:launchMode=“singleTaskActivity B:launchMode默认 正常场景: 由A切换到B:A–>B A: onPause B: onCreate–>onStart–>onResume A:onStop 由B回到A:B通过finish方法返回A B: onPause A: onRestart–>onStart–>onResume B: onStop–&gt 阅读详情

相关推荐

androidactivity的四种启动模式生命周期

Android四大组件中主要负责ui界面显示的就是Activity,官方给我们提供了四种启动模式供我们选择,分别是standard,singleTask,singleTop,singleInstance,以便与在特殊的情况下对activity进行特殊的设置。下面为大家简单的介绍一下各自的功能它们的区别。1,standrad。(标准的启动模式)      这是Activity的默认启动模式,在这...

Running的博客 1083

Android生命周期启动模式

指定为singleInstance模式的Activity会启用一个新的返回栈来管理这个Activity(其实如果singleTask模式指定不同的taskAffinity,也会启动一个新的返回栈)。假设我们的程序中有一个Activity时允许其他程序调用的,如果想。

ChenYiRan123456的博客 4530

Android 生命周期顺序记录

Android 生命周期顺序记录 为自己学习做记录,仅供参考。 首次进入singletaskactivity ,包括其它启动模式activity * 首次创建Activity 生命周期 * AActivity->onCreate->onStart->onResume 启动模式singletask的启动 * 使用launch mode = singletask 时,再次被调用...

chrysanthemum33的博客 356

AndroidActivity 知识总结:生命周期 / 启动模式 / 启动流程 / 卡顿分析 / 组件通信

1 生命周期LifeCycle Activity任务栈 4种形态 Active:栈顶,可见,能用户交互; Paused:被新的/非全屏的Activity挡住时,失去焦点;可见,但不可交互;所有数据都在,正常情况下不会被系统回收,只有在系统内存不足的时候才被回收; Stopped:完全被覆盖,不可见;所有数据都在,在内存足够的时候数据都是被保存着的,在系统内存不足的时候才被回收(同Paused); Killed:系统回收掉。 总结1: Activity是与用户交互的接口(提供一个让用户完成相关操作的

qq_30885821的博客 807

AndroidActivity生命周期启动模式

本文简单介绍了 AndroidActivity 的状态、生命周期启动模式

LiuYaoheng的博客 1212

我的Android开发笔记之Activity生命周期启动模式

1.onRestart()活动由不可见重新变为可见。2.onStart()此时activity已经可见,但是在后台显示。3.onResume()此时activty在前台显示4.onPause()此时activity正在停止,活动显示在后台,不能进行太耗时的操作,不然会影响新的活动的显示5.onStop()此时activity即将停止,可以做一些稍微重量级的操作。6.onStart()onStop()与onResume()onPause()的区别在与前者为是否显示,后者是否显示在前台。

2303_80343762的博客 1341

安卓开发艺术探索一——Activity生命周期启动模式

文章目录Activity生命周期启动模式Activity生命周期正常情况下的生命周期异常情况下的生命周期1.系统配置改变导致活动被杀死并重新创建2.资源内存不足导致低优先级的Activity被杀死Activity启动模式启动模式的设置IntentFilter的匹配规则1.action的匹配规则2.category的匹配规则3.data的匹配规则参考资料 Activity生命周期启动模式...

qq_43935080的博客 784

Android进阶:Activity生命周期启动模式

作为Android四大组件之中存在感最强的组件,Activity应该是我们在学习Android中第一个碰到的新概念。在日常开发过程中我们肯定会用到Activity,今天我们就来详细说明Activity生命周期启动模式。在本篇文章中,将会介绍以下比较具体的内容: 1. context对象是什么 2. 什么是失去焦点不可见 3. Activity生命周期 4. 异常状态下该如何处理Activity的重新创建 5. 什么是任务任务栈 6. 五种启动模式任务亲性 7. 清除返回堆栈

Tai_Monster的博客 1195

[Android 笔记一] Activity生命周期启动模式

1. Activity生命周期 Activity有四种生命状态 ,分别是:running、paused、stopped、killed。 1.1 正常生命周期 onCreate(): 表示此时activity正在创建,通常进行一些初始化的方法。 onStart(): 表示此时activity已经被创建,但没有位于前台,处于可见但不可交互的状态。 onResume(): 表示此时activity处于前台running的状态,既可见又可交互的状态。 onPause():

weixin_38423311的博客 1251

Android Activity生命周期启动模式

假如编程易懂得,那么程序员就不会热情地写出注释,也不会有得到编程的快乐。 这周六周日是在是太忙了,导致博客没有及时更新,在这里深表惭愧,所以这才加班加点完成一篇博客来弥补我的过失,好了不说那么多了,进入正题,今天主要讲的是 Activity 的声明周期启动模式,其实这两个地方的基础知识本篇不会介绍很多,本篇主要介绍的是我们在使用中遇到的问题,我们在使用中正确的使用规则。 一

授人以鱼不如授人以渔 455

Android开发艺术探索》之Activity生命周期启动模式(一)

Android开发艺术探索 第一章:Activity生命周期启动模式 ...

云瀚的自习室 1932

Android学习总结(一)——Activity概念、生命周期启动模式

概念 ActivityAndroid的四大组件之一,它是一种可以包含用户界面的组件,主要用于用户进行交互。那到底什么是Activity呢?按我的理解是Android提供了一个界面,可以让用户进行点击各种滑动操作,这就是Activity. 生命周期 首先来一个Activity生命周期图: 让我们来看一下各个回调方法的含义: onCreate:表示Activity正在被创建,这是生...

lsh_sh的博客 330

Android面试-1 Activity生命周期启动模式

生命周期分析 典型情况 ActivityA中打开ActivityB:ActivityA执行onPause,onSaveInstance,onStop,ActivityB执行onStart,onResume。注意ActivityB的onResume必须在ActivityA的onPause执行完后才会执行, ActivityA中打开ActivityB,ActivityB为透明主题,Activi...

qq_28758749的博客 272

Android学习- Activity生命周期启动模式

Activity 作者:桂志宏 ActivityAndroid四大组件之首,也是使用最为频繁的组件,主要负责界面的显示,因此Activity的重要性不言而喻。关于Activity的基本用法就不多说,下面主要讨论两个重要的过程:Activity生命周期 Activity启动模式 Activity生命周期 下面给出Activity生命周期的一张经典的流程图 下面一一说明 o...

u014595623的博客 310

Android开发艺术探索》笔记 — Activity生命周期启动模式

其实艺术探索这本书我很早就买了,传说中的中级工程师迈向高级工程师看的进阶书。哈哈哈!买了后怜香惜玉的看了几天。喔,IPC机制,View事件分发机制,消息机制,一个Drawable都能那么多知识点,好吧,我知道是我技术水平还没到达能看懂这本书。 于是,为了强行看懂书中贴出的源码,我去学了设计模式

yinhuanxu 2106

Android-Activity的四状态、七生命周期启动模式

一、四大基本组件简介: Android四大基本组件:Activity、Service、Content Provider、Broadcast Receiver Activity:活动视图 一个负责与用户交互的显示界面的组件。 Service:服务:一个没有界面、运行在后台的服务。 Content Provider:内容提供者,一个应用程序可以使用Content Provider来共享自己的数

FlowLeaf 8151

Android开发艺术探索】Activity生命周期启动模式

个人博客:http://www.milovetingting.cn 1、Activity生命周期 1.1、典型情况下的生命周期 在有用户参与的情况下,Activity所经过的生命周期的改变。 Activity会经历如下生命周期: onCreate-onRestart-onStart-onResume-onPause-onStop-onDestroy 1.2、异常情况下的生命周期 Activity被系统回收或者由于当前设备的Configuration发生改变从而导致Activity被销...

深蓝旭的博客 232

Android Activity的4种启动模式(launchMode)生命周期的影响

Standard标准模式,默认模式,每次都会再任务栈顶部重新new一个Activity SingleTop栈顶复用,如果要开始起Activity在栈顶,则复用。应用场景,IM、新闻等推送消息页面。 SingleTask栈内复用,清除该Activity上面的所有其他Activity。应该场景例如APP的主界面,每次回到主界面后会清除其他的Activity SingleInstance在整个Android内存中有且仅有一个实例,该实例独享一个任务栈。呼叫来电的界面。 ...

张雨的博客 1595
上一篇: 【安卓学习笔记】Android Handler 消息机制探究
下一篇: Android Binder 初步探究(基本原理)
tulensa
博客等级 码龄10年 3粉丝 23原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值