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. 第20章 使用LNMP架构部署动态网站环境
  2. 电脑服务器信息,电脑服务器怎么看模块信息
  3. 反射获取空参数成员方法并运行
  4. 【CSS+HTML】关于字体的说明
  5. java jdbc rowset_JDBC RowSet的使用
  6. 矩形碰撞检测和圆形碰撞检测。
  7. (四)孪生神经网络介绍及pytorch实现
  8. uni-app 行内样式动态背景图 :style 绑定
  9. Codeforces Round #215 (Div. 2) B. Sereja and Suffixes map
  10. 操作系统课程设计 Kernel编译和WinDbg启动 批处理文件
  11. AIX系统怎么更换服务器硬盘(mirrorvg)
  12. 出租车计费器的Verilog语言简单完成
  13. Flink DataStream的wordCount、数据源和Sink、Side Outputs、两阶段提交(two-phase commit, 2PC)
  14. PAT备考经验相关信息
  15. Revit二次开发_类别对应的BuiltInCategory枚举
  16. 去哪家期货公司如何开户?
  17. Android Qcom Display学习(十三)
  18. C++课程设计指导书
  19. HashMap底层——解决Hash冲突(链地址法)
  20. linux内存占用过高问题解决方法

热门文章

  1. python面向对象大段代码_python面向对象部分简单整理
  2. 计算机组成原理 输入输出系统,计算机组成原理(第七章输入输出系统
  3. 6.QT信号槽的时序分析
  4. 3.MOC文件解读(下)——MOC文件中的函数
  5. 求解线性最小二乘问题的奇异值分解及广义逆法的C++实现
  6. python灰度共生矩阵_四:利用python的skimage计算灰度共生矩阵
  7. 为11.2.0.2 Grid Infrastructure添加节点
  8. [device]/proc/devices and /dev/
  9. Python 进阶_OOP 面向对象编程_静态方法和类方法
  10. 以太坊(Ethereum)开发框架 Truffle 入门(四):编译合约