Activity A 启动 Activity B 生命周期
Activity A启动 B:
A.onPaunse - B.onCreate - B.onStart - B.onResume - A.onstop
2021-02-26 16:26:34.578 2754-2754/? I/MICO.base: [main] Activity onPause Launcher
2021-02-26 16:26:34.599 2754-2754/? D/MICO.base: [main] Activity onCreate SettingsActivity, , taskId: 17
2021-02-26 16:26:34.643 2754-2754/? D/MICO.base: [main] SettingsActivity onCreate
2021-02-26 16:26:34.650 2754-2754/? I/MICO.base: [main] Activity onStart SettingsActivity
2021-02-26 16:26:34.651 2754-2754/? I/MICO.base: [main] Activity onResume SettingsActivity
2021-02-26 16:26:35.032 2754-2754/? D/MICO.base: [main] Fragment onStop RefrigeratorMainFragment540
2021-02-26 16:26:35.032 2754-2754/? I/MICO.base: [main] Activity onStop Launcher
从B返回A:
B.onPause - A.onRestart - A.onStart - A.onResume - B.onStop - B.onDestory
2021-02-26 17:22:18.574 2754-2754/? I/MICO.base: [main] Activity onPause SettingsActivity
2021-02-26 17:22:18.596 2754-2754/? I/MICO.base: [main] Activity onRestart Launcher
2021-02-26 17:22:18.602 2754-2754/? D/MICO.base: [main] Fragment onStart RefrigeratorMainFragment540
2021-02-26 17:22:18.603 2754-2754/? I/MICO.base: [main] Activity onStart Launcher
2021-02-26 17:22:18.605 2754-2754/? I/MICO.base: [main] Activity onResume Launcher
2021-02-26 17:22:18.611 2754-2754/? I/MICO.base: [main] Fragment onActivate RefrigeratorMainFragment540
2021-02-26 17:22:18.612 2754-2754/? D/MICO.base: [main] Fragment onResume RefrigeratorMainFragment540
2021-02-26 17:22:18.718 2754-2754/? I/MICO.base: [main] Activity onStop SettingsActivity
2021-02-26 17:22:18.721 2754-2754/? D/MICO.base: [main] Activity onDestroy SettingsActivity
2021-02-26 17:22:18.723 2754-2754/? D/MICO.base: [main] SettingsActivity onDestroy
我们可以在源码里面,可以看到注释已经写的很清楚了,B 创建成功之后,才会调用A的onStop
特殊情况:
如果B 是个透明的,或者是对话框的样式, 就不会调用A 的onStop()方法。因为对用户来说,A 还是可见的。
假如启动模式为SingleTask,OnNewIntent 调用时机
I/MICO.base: [main] Activity onPause SettingsActivity
I/MICO.base: [main] Activity onRestart Launcher
D/MICO.base: [main] Fragment onStart RefrigeratorMainFragment540
I/MICO.base: [main] Activity onStart Launcher
D/MICO.base: [main] Activity onNewIntent Launcher, com.Launcher@61faf19
I/MICO.base: [main] Activity onResume Launcher
I/MICO.base: [main] Fragment onActivate RefrigeratorMainFragment540
D/MICO.base: [main] Fragment onResume RefrigeratorMainFragment540
I/MICO.base: [main] Activity onStop SettingsActivity
在onResume 之前被调用
可以看系统源码:
android.app.ActivityThread#performResumeActivitypublic ActivityClientRecord performResumeActivity(IBinder token, boolean finalStateRequest,String reason) {try {if (r.pendingIntents != null) {deliverNewIntents(r, r.pendingIntents);r.pendingIntents = null;}if (r.pendingResults != null) {deliverResults(r, r.pendingResults, reason);r.pendingResults = null;}r.activity.performResume(r.startsNotResumed, reason);}
为什么要这样设计? 从源码怎么看?
当一个页面,还没有创建出来,不应该在后台,只是暂停,所以A onPasue 就去创建B. B创建成功后,就调用A.onStop。
参考:
https://www.jianshu.com/p/5dcfea447d0f
Activity A 启动 Activity B 生命周期相关推荐
- android启动服务的生命周期,Android Service的两种启动方式以及生命周期
Service的两种启动方式: 1.startService 2.bindService 注意: .在Android 5.0之后google出于安全的角度禁止了隐式声明Intent来启动Service ...
- 介绍一下Spring Boot启动流程以及生命周期勾子函数?
代码那些事儿 2020-02-22 16:10:15 上篇文章介绍了Spring Boot自动配置的原理,但是对于Spring Boot应用的整个启动流程还是一头雾水,虽然Spring Boot大大简 ...
- # android开发:4-1、Activity启动方式、生命周期、不同activity的数据传递
4.Activity活动简介 什么是Activity: 如何创建Activity: Activity启动方式: Activity的生命周期: 不同Activity之间数据的传递: 什么是Activit ...
- Activity启动另一个Activity并返回的完整生命周期
Android的简单基本问题,这里记录一下 从一个Activity创建后启动另一个Activity并返回的完整log输出: 从log可以看出,当前Activity启动另一个Activity时,总是要等 ...
- Activity详解Activity的使用步骤、生命周期及其启动模式、启动方法
开始我们先来回顾一下Activity的基础知识: Activity是应用程序的表现层,应用程序中可以包含多个Activity,它们之间可以相互跳转,来达到手机屏幕的切换.Activity通过View来 ...
- 【安卓 R 源码】Activity 启动流程及其生命周期源码分析
1. Activty 的生命周期 activity的生命周期 oncreate()->onstart()->onResume()->onPause()->onStop()-&g ...
- Android按键响应的几种方式、安卓页面的跳转、页面跳转传参、页面自动跳转、Activity(页面)的生命周期
按键响应的第一种方式: 在XML文件里面设置按键的onClick绑定函数.就像下面的代码,给Button设置onClick属性,在按键被按下的时候,会调用java文件里面的onClickbtton1这 ...
- android启动服务的生命周期,android Service启动运行服务 生命周期
Service Android中的service类似于windows中的service,service一般没有用户操作界面,它运行于系统中不容易被用户发觉, 可以使用它开发如监控之类的程序. 一.步骤 ...
- 《Spring揭秘》——IOC梳理2(容器启动,bean生命周期)
IoC容器背后的秘密 主要分为两个阶段:容器启动阶段.Bean实例化阶段. 容器启动阶段: 容器需要依赖某些工具类(BeanDefinitionReader)对加载的Configuration Met ...
最新文章
- mysql jdbc dbcp_连接数据库 JDBC、DBCP、JNDI
- java.io.IOException: Too many open files
- SpringMVC自定义视图 Excel视图和PDF视图
- vue组件-使用插槽分发内容(slot)
- c 僵尸进程_演示僵尸进程的C程序
- ROS(Robot Operating System)笔记 : 2.创建并配置package
- 【转】oracle回闪操作
- sublime报错信息乱码_解决Sublime Text 3在GBK编码下的中文乱码问题
- 银联支付接口常见错误总结
- 几何画板椭圆九种画法_如何利用几何画板自定义工具画椭圆
- 安卓强刷linux,安卓系统使用dd命令强制刷入以强制升降级、刷入低底包
- getElementById(‘divid‘).innerHTML赋值【js基础】
- linux启用NAT功能,双网卡共享网络,iptables简单实现
- 排班算法 java_【算法】基于优先级的排班算法实现
- 有约束条件的优化问题求解推导
- 激活卡巴7.0的时候,提示活动和备份的授权许可文件都已注册
- 计算机考试wps题型,2016年计算机一级WPS上机考试指导
- 记录vue table列表中的选择表格反写
- react引入阿里字体图标iconfont
- 定义一个三角形类Ctriangle,求三角形面积和周长。
热门文章
- 梦幻桌面wmv_【 梦幻桌面 】梦幻桌面(DreamScene桌面美化工具)新版下载 - U大师
- html实现带有数字的列表,纯CSS实现雨滴形状的数字序号列表
- cpld xilinx 定义全局时钟_AutoSAR中的时钟同步机制
- python爬虫 小白轻松从0到1_如何从0到1,学习Python的流程【小白入门】
- 记录一下海上风力机机械装置
- MFC中UPD通信详细解说
- OPENCV标定外参
- 洛谷P4206 聪聪与可可
- Android 追加写入文件的三种方法
- 基于Nginx实现10万+并发,你应该做的Linux内核优化