PS:本文为转载文章,原文可读性会更好,文末有原文链接本文为基于Android中Activity的工作流程(一)继续写是的,Android中Activity的工作流程(一)在这篇文章中,我们提到了两行代码,分别是下面的代码;这里的this指的是MainActivity对象,我们在Android中Activity的工作流程(一)本文分析了MainActivity的onPause的调用过程。本文拟从以上两行代码分析Main2Activity的onCreate和onStart的调用过程。Android中Activity的工作过程(一)在本文中,我们分析了以下几行代码;见注释15,调用ActivityStack的resumeTopActivityInner-Locked(ActivityRecordprev,ActivityOptionsoptions)方法;见注释27和28代码,mStackSupervisor是ActivityStackSupervisor类型的对象,都调用了ActivityStackSupervisor的startSpecificActivityLocked(ActivityR-ecordr,booleanandResume,booleancheckConfig)方法;上面两行代码:Intentintent=newIntent(this,Main2Activity.class);启动活动(意图);我们要启动的是Main2Activity吧?然后ActivityStackSupervisor的startSpecificActivityLocked(ActivityRecordr,booleanandResume,booleancheckConfig)方法是Main2Activity的onCreate和onSt-art方法的入口。好吧,我们回到注解27和28的代码,我们调用的是注解27的代码还是注解?28的密码呢?我们看一下Note26代码中if语句的用途,意思是判断是否创建了新的app进程;首先,我写这个demo的时候并没有启动新的进程来启动Main2Activity,所以我不会按照注释26中if包裹的代码,会执行注释28中的代码。ecordr,booleanandResume,booleancheckConfig)ActivityStackSupervisor方法;见注解29,调用ActivityStackSupervisor的realStartActivi-tyLocked(ActivityR-ecordr,booleanandResume,booleancheckConfig)方法ecordr,ProcessRecordapp,booleanandResume,booleancheckConfig)方法;见注30,app.thread是ActivityThread的内部类ApplicationThread,然后调用ApplicationThread的schedule-LaunchActivity(Intentintent,IBindertoken,intident,ActivityInfoinfo,ConfigurationcurConfig,ConfigurationoverrideConfig,Co-mpatibilityInfocompatInfo,Stringreferrer,IVoiceInteractorvoiceInteractor,intprocState,Bundlestate,PersistableBundlepersistentState,List
