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

  • 相关阅读:
    halcon中variation_model_single实例注释.
    vc 实现打印功能
    用VisualC++建立SOAP客户端应用(一)
    第六章
    OpenCV】透视变换 Perspective Transformation(续)
    第六章
    OpenCV仿射变换+投射变换+单应性矩阵
    【最新图文教程】WinCE5.0中文模拟器SDK(VS2008)的配置
    Visual Studio 2008 使用 WinCE 5.0 Emulator
    Win32 CMD批处理命令
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/8296921.html
Copyright © 2011-2022 走看看