博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Activity工作过程
阅读量:6334 次
发布时间:2019-06-22

本文共 1262 字,大约阅读时间需要 4 分钟。

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的具体实现。

转载地址:http://gbioa.baihongyu.com/

你可能感兴趣的文章
红帽虚拟化RHEV-架构简介
查看>>
二维条码扫描模组在肯德基KFC的无纸化点餐解决方案
查看>>
综合评价模型C++实现
查看>>
坐标系和坐标转换
查看>>
函数执行的预解释
查看>>
Thinkpad E450c进入BIOS
查看>>
nginx支持HTTP2的配置过程
查看>>
C. Day at the Beach
查看>>
技术学习网站
查看>>
js继承的方式
查看>>
【Splay】bzoj3224 Tyvj 1728 普通平衡树
查看>>
【dijkstra】【次短路】【fread】hdu6181 Two Paths
查看>>
python3支持excel读写
查看>>
工具:SVN的Web客户端(ViewVC、SVNWebClient、sventon)和任务管理(Trac、Collaboa)
查看>>
ubuntu关闭自动更新、打开 ubuntu 的 apport 崩溃检测报告功能
查看>>
vmlinux,zImage,bzImage,vmlinuz,uImage,关系
查看>>
会议管理拖动效果的页面制作1
查看>>
linux grep、find 命令详解
查看>>
Vuex详解笔记2
查看>>
[转载]java 中finally关键字的使用
查看>>