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 生命周期相关推荐

  1. android启动服务的生命周期,Android Service的两种启动方式以及生命周期

    Service的两种启动方式: 1.startService 2.bindService 注意: .在Android 5.0之后google出于安全的角度禁止了隐式声明Intent来启动Service ...

  2. 介绍一下Spring Boot启动流程以及生命周期勾子函数?

    代码那些事儿 2020-02-22 16:10:15 上篇文章介绍了Spring Boot自动配置的原理,但是对于Spring Boot应用的整个启动流程还是一头雾水,虽然Spring Boot大大简 ...

  3. # android开发:4-1、Activity启动方式、生命周期、不同activity的数据传递

    4.Activity活动简介 什么是Activity: 如何创建Activity: Activity启动方式: Activity的生命周期: 不同Activity之间数据的传递: 什么是Activit ...

  4. Activity启动另一个Activity并返回的完整生命周期

    Android的简单基本问题,这里记录一下 从一个Activity创建后启动另一个Activity并返回的完整log输出: 从log可以看出,当前Activity启动另一个Activity时,总是要等 ...

  5. Activity详解Activity的使用步骤、生命周期及其启动模式、启动方法

    开始我们先来回顾一下Activity的基础知识: Activity是应用程序的表现层,应用程序中可以包含多个Activity,它们之间可以相互跳转,来达到手机屏幕的切换.Activity通过View来 ...

  6. 【安卓 R 源码】Activity 启动流程及其生命周期源码分析

    1. Activty 的生命周期 activity的生命周期 oncreate()->onstart()->onResume()->onPause()->onStop()-&g ...

  7. Android按键响应的几种方式、安卓页面的跳转、页面跳转传参、页面自动跳转、Activity(页面)的生命周期

    按键响应的第一种方式: 在XML文件里面设置按键的onClick绑定函数.就像下面的代码,给Button设置onClick属性,在按键被按下的时候,会调用java文件里面的onClickbtton1这 ...

  8. android启动服务的生命周期,android Service启动运行服务 生命周期

    Service Android中的service类似于windows中的service,service一般没有用户操作界面,它运行于系统中不容易被用户发觉, 可以使用它开发如监控之类的程序. 一.步骤 ...

  9. 《Spring揭秘》——IOC梳理2(容器启动,bean生命周期)

    IoC容器背后的秘密 主要分为两个阶段:容器启动阶段.Bean实例化阶段. 容器启动阶段: 容器需要依赖某些工具类(BeanDefinitionReader)对加载的Configuration Met ...

最新文章

  1. mysql jdbc dbcp_连接数据库 JDBC、DBCP、JNDI
  2. java.io.IOException: Too many open files
  3. SpringMVC自定义视图 Excel视图和PDF视图
  4. vue组件-使用插槽分发内容(slot)
  5. c 僵尸进程_演示僵尸进程的C程序
  6. ROS(Robot Operating System)笔记 : 2.创建并配置package
  7. 【转】oracle回闪操作
  8. sublime报错信息乱码_解决Sublime Text 3在GBK编码下的中文乱码问题
  9. 银联支付接口常见错误总结
  10. 几何画板椭圆九种画法_如何利用几何画板自定义工具画椭圆
  11. 安卓强刷linux,安卓系统使用dd命令强制刷入以强制升降级、刷入低底包
  12. getElementById(‘divid‘).innerHTML赋值【js基础】
  13. linux启用NAT功能,双网卡共享网络,iptables简单实现
  14. 排班算法 java_【算法】基于优先级的排班算法实现
  15. 有约束条件的优化问题求解推导
  16. 激活卡巴7.0的时候,提示活动和备份的授权许可文件都已注册
  17. 计算机考试wps题型,2016年计算机一级WPS上机考试指导
  18. 记录vue table列表中的选择表格反写
  19. react引入阿里字体图标iconfont
  20. 定义一个三角形类Ctriangle,求三角形面积和周长。

热门文章

  1. 梦幻桌面wmv_【 梦幻桌面 】梦幻桌面(DreamScene桌面美化工具)新版下载 - U大师
  2. html实现带有数字的列表,纯CSS实现雨滴形状的数字序号列表
  3. cpld xilinx 定义全局时钟_AutoSAR中的时钟同步机制
  4. python爬虫 小白轻松从0到1_如何从0到1,学习Python的流程【小白入门】
  5. 记录一下海上风力机机械装置
  6. MFC中UPD通信详细解说
  7. OPENCV标定外参
  8. 洛谷P4206 聪聪与可可
  9. Android 追加写入文件的三种方法
  10. 基于Nginx实现10万+并发,你应该做的Linux内核优化