launchMode、Task、Stack
1) 使用“ adb shell dumpsys activity ” 结果:
//===================================================================
ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)
================ << mPreviewStack : begin >> ===============================
================ << mPreviewStack : end >> ===============================
Stack #0:
Task id #1
TaskRecord{42408178 #1 A=com.iqiyi.game U=0 sz=1}
Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10600000 cmp=com.iqiyi.game/org.cocos2dx.lua.AppActivity }
Hist #0: ActivityRecord{42404578 u0 com.iqiyi.game/org.cocos2dx.lua.AppActivity t1}
Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.iqiyi.game/org.cocos2dx.lua.AppActivity }
ProcessRecord{423ee6e0 957:com.iqiyi.game/1000}
Running activities (most recent first):
TaskRecord{42408178 #1 A=com.iqiyi.game U=0 sz=1}
Run #0: ActivityRecord{42404578 u0 com.iqiyi.game/org.cocos2dx.lua.AppActivity t1}
Stack #1:
Task id #7
TaskRecord{424c94e8 #7 A=com.tvos.gameteach U=0 sz=1}
Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10800000 pkg=com.tvos.gameteach cmp=com.tvos.gameteach/.BeginEndActivity }
Hist #0: ActivityRecord{41b41be0 u0 com.tvos.gameteach/.BeginEndActivity t7}
Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10800000 pkg=com.tvos.gameteach cmp=com.tvos.gameteach/.BeginEndActivity }
ProcessRecord{41bf5ff8 2010:com.tvos.gameteach/u0a24}
Task id #2
TaskRecord{41a6e240 #2 A=com.nevosoft.supercow U=0 sz=1}
Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10400000 pkg=com.nevosoft.supercow cmp=com.nevosoft.supercow/.Main }
Hist #0: ActivityRecord{41c71740 u0 com.nevosoft.supercow/.Main t2}
Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.nevosoft.supercow cmp=com.nevosoft.supercow/.Main }
ProcessRecord{4248dc78 1966:com.nevosoft.supercow/u0a23}
Running activities (most recent first):
TaskRecord{424c94e8 #7 A=com.tvos.gameteach U=0 sz=1}
Run #1: ActivityRecord{41b41be0 u0 com.tvos.gameteach/.BeginEndActivity t7}
TaskRecord{41a6e240 #2 A=com.nevosoft.supercow U=0 sz=1}
Run #0: ActivityRecord{41c71740 u0 com.nevosoft.supercow/.Main t2}
mResumedActivity: ActivityRecord{41b41be0 u0 com.tvos.gameteach/.BeginEndActivity t7}
mFocusedActivity: ActivityRecord{41b41be0 u0 com.tvos.gameteach/.BeginEndActivity t7}
mDismissKeyguardOnNextActivity=false
mFocusedStack=ActivityStack{41a71210 stackId=1, 2 tasks} mStackState=STACK_STATE_HOME_IN_BACK
mSleepTimeout=false
mCurTaskId=7
mUserStackInFront={}
[GameBox] .WMS::focusedWin=Window{423e8410 u0 com.tvos.gameteach/com.tvos.gameteach.BeginEndActivity}
[GameBox] .ActivityStackSupervisor::mStackState=STACK_STATE_HOME_IN_BACK
[GameBox] .mPreviewStack=null
[GameBox] .previewState=STATE_NONE
Recent tasks:
* Recent #0: TaskRecord{424c94e8 #7 A=com.tvos.gameteach U=0 sz=1}
* Recent #1: TaskRecord{41a6e240 #2 A=com.nevosoft.supercow U=0 sz=1}
* Recent #2: TaskRecord{42408178 #1 A=com.iqiyi.game U=0 sz=1}
//===================================================================
2) 特别注意android:launchMode 影响的是:Task中的Hist的记录。
若launchMode =singleInstance,新建的不是“ Stack ”,而是 “ Task ”。
3) Task、Stack、History 关系图