赞
踩
之前看了下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了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。