Android学习笔记:Android10.0.+版本下Activity的工作过程(流程分析文档)

本文详细分析了在Android10.0+版本中Activity的启动过程,从startActivity()方法开始,涉及Intent、ActivityTaskManager、ActivityStackSupervisor等多个组件,直至Activity的创建与初始化。整个流程包括Intent触发、Instrumentation调用、ActivityTaskManagerService的startActivityAsUser方法以及ActivityThread的main方法等关键步骤。
摘要由CSDN通过智能技术生成

一、源代码版本

源代码版本:Source for Android 30 (Android10.0+(R))

二、流程图

三、流程分析

Activity的启动由Intent触发,Intent可以分为显式Intent和隐式Intent。

首先,我们编写一个ActivityDemo,该工程下有两个Activity,分别为MainActivity和SecondActivity,还有两个布局文件,分别为activity_main.xml和activity_second.xml。

从入口方法startActivity()方法开始分析,startActivity()方法有好几种重载方法,但它们最终都会调用startActivityForResult()方法。

进入MainActivity#startActivity()方法后,在方法的末尾调用了startActivityForResult()方法。

接下来,我们进入Activity#startActivityForResult()方法。

startActivityForResult()方法才是真的调起Activity的入口方法,其中,mParent表示ActivityGroup,当mParent==null的时候,进入Instrumentation#execStartActivity()方法。Instrumentation是Android系统中启动Activity的一个实际操作类,它用来监控应用程序和系统的交互。

在try方法块中,调用了ActivityTaskManager.getService().startActivity()方法来启动Activity。

首先,进入ActivityTaskManager#getService()方法。

可以看出getService()方法中返回的是IActivityTask

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值