其他应用返回launcher桌面的流程

分两种清形:launcher已被回收需重新启动activity 和 恢复launcher的activity

Activity:onKeyUp handle KEYCODE_BACK ->
Activity:onBackPressed->
Activity:finish->
ActivityManagerProxy:finishActivity->
ActivityManagerNative:FINISH_ACTIVITY_TRANSACTION ->
ActivityManagerService:finishActivity->
ActivityStack:requestFinishActivityLocked ->
ActivityStack:finishActivityLocked ->
ActivityStack:startPausingLocked ->
ActivityStack:PAUSE_TIMEOUT_MSG ->
ActivityStack:activityPaused ->
ActivityStack:completePauseLocked ->
ActivityStack:finishCurrentActivityLocked ->
ActivityStack:resumeTopActivityLocked -> {
    if (topRunningActivityLocked return null) // launcher Activity或进程已不存在
        ActivityManagerService:startHomeActivityLocked ->
        ActivityStack:startActivityLocked ->
        ActivityStack:startActivityUncheckedLocked ->
        ActivityStack:resumeTopActivityLocked    
    else -> resumeTopActivityLocked next: HistoryRecord{4057ce80 com.android.launcher/.Launcher}
}




你可能感兴趣的:(null)