zoukankan      html  css  js  c++  java
  • 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的具体实现。

  • 相关阅读:
    css优化篇
    select超全超详细总结篇
    meta总结
    富文本编辑
    textarea 换行处理
    07 DRF响应类:Response
    06 内部类
    05 序列化组件
    04 APIView的请求生命周期
    python中if __name__ == '__main__'是什么?
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/8296921.html
Copyright © 2011-2022 走看看