一筋栋、Android 應(yīng)用啟動調(diào)用的方法如下握侧,稍后更新時序圖:
startActivity(Activity) ---> startActivityForResult(Activity)--->execStartActivity(Instrumentation) --->
startActivity(AMS) ---> startActivityMayWait(ActivityStackSuperVisor) ---> startActivityLocked(ActivityStackSuperVisor) --->
startActivityUncheckedLocked(ActivityStackSuperVisor) launchMode ---> startActivityLocked(ActivityStack) --->? resumeTopActivitiesLocked(ActivityStackSuperVisor)? --->resumeTopActivityLocked(ActivityStack)? ---> resumeTopActivityInnerLocked(ActivityStack) finish stack options ---> startPausingLocked(ActivityStack)
---> schedulePauseActivity(ActivityThread) ---> handlePauseActivity(ActivityThread) ---> activityPaused(AMS) --->completePauseLocked(AMS)
---> resumeTopActivitiesLocked(ActivityStackSuperVisor) ---> startSpecificActivityLocked(ActivityStackSuperVisor) ---> startProcessLocked(AMS) ---> newProcessRecordLocked()
---> Process.start() ---> main(ActivityThread) ---> attach(ActivityThread) ---> attachApplication(AMS)? ---> attachApplicationLocked(AMS)? --->attachApplicationLocked(ActivityStackSuperVisor) ---> realStartActivityLocked(ActivityStackSuperVisor) ---> scheduleLaunchActivity(ActivityThread) ---> handleLaunchActivity(ActivityThread)
---> performLaunchActivity ---> handleResumeActivity? ---> performResumeActivity