Activity工作过程
Activity工作过程:
Activity.startActivity-->
Activity.startActivityForResult-->
Instrumentation.execStartActivity-->
ActivityManagerNative.getDefault().startActivity-->
ActivityManagerService.startActivity-->
ActivityStackSupervisor.startActivityMayWait-->
ActivityStackSupervisor.startActivityLocked-->
ActivityStackSupervisor.startActivityUncheckedLocked-->
ActivityStack.resumeTopActivitiesLocked-->
ActivityStack.resumeTopActivityInnerLocked-->
ActivityStackSupervisor.startSpecificActivityLocked-->
ActivityStackSupervisor.realStartActivityLocked-->
ApplicationThread.scheduleLaunchActivity-->
(Handler)H.handleMessage->
ActivityThread.handleLaunchActivity->
ActivityThread.performLaunchActivity
performLaunchActivity主要完成如下几件事
1)从ActivityClientRecord中获取待启动的Activity的组件信息
2)通过Instrumentation的newActivity的newActivity方法使用类加载器创建Activity对象
3)通过LoadedApk的makeApplication方法来尝试创建Application对象
4)创建ContextImpl对象并通过Activity的attach方法来完成一些重要数据的初始化
5)调用Activity的onCreate方法
No1:
ApplicationThread是ActivityThread的一个内部类
ApplicationThraed继承了ApplicationThreadNative,而ApplicationThreadNative则继承了Binder并实现了IApplicationThread接口。
No2:
ActivityManagerService继承自ActivityManagerNative,而ActivityManagerNative继承自Binder并实现了IActivityManager这个Binder接口,因此AMS也是一个Binder,它是IActivityManager的具体实现。
Activity工作过程的更多相关文章
- activity工作的使用
一. 什么是工作流 以请假为例,现在大多数公司的请假流程是这样的 员工打电话(或网聊)向上级提出请假申请——上级口头同意——上级将请假记录下来——月底将请假记录上交公司——公司将请假录入电脑 采用工作 ...
- 《Android开发艺术探索》读书笔记 (9) 第9章 四大组件的工作过程
第9章 四大组件的工作过程 9.1 四大组件的运行状态 (1)四大组件中只有BroadcastReceiver既可以在AndroidManifest文件中注册,也可以在代码中注册,其他三个组件都必须在 ...
- 【Android - 自定义View】之View的工作过程简介
View的工作过程分为三个过程: View的measure过程: View的layout过程: View的draw过程. 我们知道,一个Activity就是一个窗口,这个窗口中包含一个Window.一 ...
- 【Android开发艺术探索】四大组件的工作过程
个人博客 http://www.milovetingting.cn 四大组件的工作过程 四大组件:Activity.Service.BroadcastReceiver.ContentProvider ...
- 《CPU的工作过程》
本文转载自inter官方网址:https://software.intel.com/zh-cn/articles/book-Processor-Architecture_CPU_work_proces ...
- 测试或运维工作过程中最常用的几个linux命令?
大家在测试工作过程中,可能会遇到需要你去服务器修改一些配置文件,譬如说某个字段的值是1 则关联老版本,是0则关联新版本,这时候你可能就需要会下vi的命令操作:或者查看session设置的时长,可能需 ...
- 主动模式下FTP的详细工作过程(转) 挺详细
主动模式下FTP的详细工作过程 PORT FTP是常用的FTP工作方式,当客户端的连接请求到来时,FTP服务器会利用默认的21端口与客户端建立连接,该连接属于命令通道,利用该通道来下达控 制指令: ...
- Nginx reopen reload作用及工作过程
http://www.iigrowing.cn/nginx-reopen-reload-zuo-yong-ji-gong-zuo-guo-cheng.html Nginx reopen reload作 ...
- LTE工作过程
LTE工作过程 一.LTE开机及工作过程如下图所示: 二.小区搜索及同步过程 整个小区搜索及同步过程的示意图及流程图如下: 1) UE开机,在可能存在LTE小区的几个中心频点上接收信号(PSS), ...
随机推荐
- linux常用命令_1
linux中命令格式是什么? 命令 [参数选项] [文件或路径] 中括号表示可选,命令的参数与路径文件可选 参数选择表示一个命令的不同功能 命令 和 参数选项 中必有一空格,多个参数连在一起写 几乎所 ...
- python_如何使用生成器实现可迭代对象?
案例分析: 实一个可迭代对象的类,它能迭代出给定范围内所有的素数: pn = Number(1, 30) for k in pn: print(k) 结果为:2,3,5,7,11,13,17,19,2 ...
- Python程序的执行方式
Python代码有两种执行方式: 一.文件执行 二.交互器执行(推荐) 一.文件执行 1.用 notepad++ 或 Sublime Text,甚至 写字本创建一个文件. 2.比如:print('He ...
- 微信支付JSAPI公众号支付授权目录
详情 http://yangjunwei.com/a/1815.html
- MySQL查看和修改表的存储引擎
1 查看系统支持的存储引擎 show engines; 2 查看表使用的存储引擎 两种方法: a.show table status from db_name where name='table_na ...
- 解决IE中placeholder的兼容问题
定义和用法 placeholder 属性提供可描述输入字段预期值的提示信息(hint). 该提示会在输入字段为空时显示,并会在字段获得焦点时消失. 注释:placeholder 属性适用于以下的 &l ...
- Git 2.0 更改 push default
近期更新了git,项目push时会提示这样的信息: warning: push.default 尚未设置,它的默认值在 Git 2.0 已从 'matching' 变更为 'simple'.若要不再显 ...
- FTP 安装配置
FTP 安装配置: 一.基础操作 yum install -y ftp yum install -y vsftpd service iptables stop chkconfig iptables o ...
- FC经典游戏还原之:松鼠大作战2
版权声明:本文原创发布于博客园"优梦创客"的博客空间(id:raymondking123) 原帖地址:http://www.cnblogs.com/raymondking123/p ...
- DFS实现排列组合
所谓排列,是指从给定的元素序列中依次取出元素,需要考虑取出顺序.比如,取出元素3, 5,因取出顺序的不同,则形成的序列{3, 5}与{5, 3}是不同的排列序列.对于长度为n的元素序列取出k个元素,则 ...