Android--startActivity

之前看了下startActivity的源码,了解了下他的整个流程
以下都是以SDK25来分析的

MainActivity:
    -->startActivity();

Activity:
    -->void startActivityForResult()
    -->mMainThread.sendActivityResult()//如果上一步返回的结果不为空的话,会走这一步,也就是我们平常的onActivityResult方法

Instrumentation:
    -->ActivityResult execStartActivity()

ActivityManagerNative->ActivityManagerProxy:
    -->int startActivity()

    //以下开始就是执行远端
    -->boolean onTransact()

ActivitymanagerService:
    -->int startActivity()//注意:是10个参数的那个方法
    -->int startActivityAsUser()//11个参数

ActivityStarter:
    -->int startActivityMayWait()
    -->int startActivityLocked()
    -->int startActivityUnchecked()//这个方法里有在清单文件里配置的Activity的启动模式,比如SingleTask等

ActivityStackSupervisor:
    -->boolean resumeFocusedStackTopActivityLocked()

ActivityStack:
    -->boolean resumeTopActivityUncheckedLocked()
    -->boolean resumeTopActivityInnerLocked()

ActivityStackSupervisor:
    -->void startSpecificActivityLocked()
    -->boolean realStartActivityLocked(r, app, andResume, checkConfig);

ActivityThread:
    -->void scheduleLaunchActivity()
    -->void handleLaunchActivity()

    进入这个方法之后就可以看到我们熟悉的Activity了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值