如果用戶長時間離開任務,則系統(tǒng)會清除所有 Activity 的任務,根 Activity 除外。 當用戶再次返回到任務時,僅恢復根 Activity。系統(tǒng)這樣做的原因是,經(jīng)過很長一段時間后,用戶可能已經(jīng)放棄之前執(zhí)行的操作,返回到任務是要開始執(zhí)行新的操作。
你可以使用下列幾個 Activity 屬性修改此行為:
alwaysRetainTaskState
如果在任務的根 Activity 中將此屬性設置為 "true",則不會發(fā)生剛才所述的默認行為。即使在很長一段時間后,任務仍將所有 Activity 保留在其堆棧中。
clearTaskOnLaunch
如果在任務的根 Activity 中將此屬性設置為 "true",則每當用戶離開任務然后返回時,系統(tǒng)都會將堆棧清除到只剩下根 Activity。 換而言之,它與 alwaysRetainTaskState 正好相反。 即使只離開任務片刻時間,用戶也始終會返回到任務的初始狀態(tài)。
finishOnTaskLaunch
此屬性類似于 clearTaskOnLaunch,但它對單個 Activity 起作用,而非整個任務。 此外,它還有可能會導致任何 Activity 停止,包括根 Activity。 設置為 "true" 時,Activity 仍是任務的一部分,但是僅限于當前會話。如果用戶離開然后返回任務,則任務將不復存在。