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

  • 相关阅读:
    利用线程制作简单定时器
    VScode小白简介
    WebService介绍及C/C++访问
    Redis的C++与JavaScript访问操作
    Redis的安装配置及简单集群部署
    解决npm被墙的问题
    【学习整理】第三章 使用字符串
    【学习整理】第四章 字典
    【学习整理】第二章 列表和元祖
    【学习整理】第一章 基础知识部分 常用函数 简单语法
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/8296921.html
Copyright © 2011-2022 走看看