(4)启动Activity的过程:三一、startPausingLocked函数根据启动Activity的过程:一,我们知道在启动Activity的过程中,当已经将Activity对应的Task移动到前台,同时将待启动的Activity放置到栈顶后,将会调用ActivityStack中的resumeTopActivityInnerLocked函数,在该函数中:privatebooleanresumeTopActivityInnerLocked(......){...........//mResumedActivity保存者当前在前台显示的Activityif(mResumedActivity!=null){.............//调用startPausingLocked函数,中断正在显示的Activitypausing|=startPausingLocked(userLeaving,false,true,dontWaitForPause);}if(pausing){..........returntrue;}......................}此处,跟进一下startPausingLocked函数://(booleanuserLeaving,booleanuiSleeping,booleanresuming,booleandontWait){.................//mResumedActivity保存着当前正在显示的ActivityActivityRecordprev=mResumedActivity;.................mResumedActivity=null;//mPausingActivity保存准备中断的ActivitymPausingActivity=prev;................//=;................if(!=null&&!=null){................try{............//通知该Activity所在的进程,(,,userLeaving,,dontWait);}catch(Exceptione){...............}}else{..............}//Ifwearenotgoingtosleep,wewanttoensurethedeviceis//(!uiSleeping&&!()){//在启动Activity的第二部分中提过//该WakeLock防止在Activity切换过程中,系统发生休眠//当Activity切换成功后,();}if(mPausingActivity!=null){//Havethewindowmanagerpauseitskeydispatchinguntilthenew//'repausingtheactivityjustbecause//thescreenisbeingturnedoffandtheUIissleeping,don'tinterrupt//keydispatch;(!uiSleeping){//();}.................if(dontWait){//Ifthecallersaidtheydon'twanttowaitforthepause,plete//pletePauseLocked(false);returnfalse;}else{//Scheduleapausetimeoutincasetheappdoesn'trespond.//We
android 70 activitymanagerservice(4) 启动activity 来自淘豆网m.daumloan.com转载请标明出处.