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

  • 相关阅读:
    团队冲刺(八)
    团队冲刺(七)
    团队冲刺(六)
    Java开发中BASE64Encoder的使用
    解决waiting for target deviceto come online的做法
    团队冲刺(五)
    团队冲刺(四)
    CSS布局 ——从display,position, float属性谈起
    让图表的Y轴 产生几个刻度距离
    CSS行高——line-height 垂直居中等问题
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/8296921.html
Copyright © 2011-2022 走看看