我想了解SingleTask和FLAG_ACTIVITY_CLEAR_TOP之間的區別。看起來兩者都以相同的方式工作。 Ex-我創建了Activity A - > B - > c - > D - > E,其中C的啓動模式爲SingleTask。 現在,如果我從E打開C,然後按回車,我得到A - > B - > c 同樣的事情發生在我用FLAG_ACTIVITY_CLEAR_TOP從E啓動C時。 不確定這兩者有什麼區別。SingleTask和FLAG_ACTIVITY_CLEAR_TOP之間的區別
0
A
回答
1
Assume A , B , C , D , E , F are the Activities
**launchMode=」singleTask」**
We are adding launchMode=」singleTask」 in C.
Example one:
Previous State of Activity Stack
D
C
B
A
Start C
Final State of Activity Stack
C -old instance gets extras data through onNewIntent(Intent intent);
B
A
info - D gets destroyed
Example Two:
Previous State of Activity Stack
B
A
Start C
Final State of Activity Stack
C -starts as usual.
B
A
**FLAG_CLEAR_TOP**
We are starting B from D with flag
Previous State of Activity Stack
D
C
B
A
Final State of Activity Stack
B -old instance gets extras data through onNewIntent(Intent intent);
A
info -All others will get destroyed
更詳細的說明,我已經寫了here
0
如果設置launchMode="singleTask"
但不也設置taskAffinity
在<activity>
然後起跑模式被忽略。這是你看到行爲沒有區別的原因。
如果設置C
launchMode="singleTask"
和taskAffinity=""
,然後有這個任務的堆棧:A-> B和則B啓動C,你將最終獲得2個獨立的任務:一個任務都有A-> B和其他任務包含C.如果您當時按下HOME按鈕,您會在最近的任務列表中看到您的應用的2個任務。
相關問題
- 1. singleTask和singleInstance之間的區別
- 2. 之間的〜/和的區別../
- 3. '#','%'和'$'之間的區別
- 4. {!!之間的區別!!}和{{}}
- 5. '+ ='和'= +'之間的區別?
- 6. 「。+」和「。+?」之間的區別
- 7. .eq之間的區別。和==
- 8. #。/和#之間的區別。 ./
- 9. !=和!之間的區別==
- 10. 「%〜dp0」和「。\」之間的區別?
- 11. | =和^ = css之間的區別
- 12. 之間的區別。和#
- 13. ==和case之間的區別?
- 14. 「**/* /」和「** /」之間的區別?
- 15. jQuery - '。'之間的區別和「#」
- 16. 「?1」和「?」之間的區別
- 17. `%in%`和`==`之間的區別
- 18. fmod和%之間的區別
- 19. 之間的區別:+和:+
- 20. 類區域和堆之間的區別
- 21. SPFile和PublishingPage類別之間的區別
- 22. 子類和類別之間的區別?
- 23. System.Timers.Timer Enabled = true和.Start()之間的區別Enabled = true和.Start()之間的區別
- 24. isForeground()和onExposed和onObscured之間的區別
- 25. $ .ajax()和$ .get()和$ .load()之間的區別
- 26. 和intent和setcontentview之間的區別
- 27. Java和C#和.NET之間的區別
- 28. NSthread和NStimer和NSNotifcation之間的區別?
- 29. sys.log()和console.log()和console.error()之間的區別?
- 30. 關注與責任之間的區別(即SRP和SoC之間的區別)?
如果是FLAG_CLEAR_TOP,所有活動都不會被破壞。只有D和C會被破壞。最終狀態將爲B A – swati
@swati已更正 –
正如您在兩種情況中所看到的,實例之間的活動被破壞。所以沒有區別。 – swati