Android SingleTask啟動模式與Home鍵的問題


我們知道SingleTask模式對於Activity的影響如下:

例如我們將Activity A設置為SingleTask模式,其他的Acitivity設置為Standard模式,則有以下效果:

A -> B -> C -> D 我們將Activity A一直跳轉到Activity D,如果此時D -> A,則會發生Activity B,C,D都會被pop出棧中Activity A則會顯示到棧頂。

我利用這個特性時,處理單端登錄:將將Activity A設置成SingleTask模式,並設置成啟動的Acitivity,

如果后台告知賬號在其他地方登錄了,則此時直接將跳轉Activity A即可,其他的Acitivity都會被pop出去。

現在問題就來了,我們將App的啟動的MainActivity設置為SingleTask模式時,如果我們在App跳轉到Activity B時,按下Home鍵,此時點擊App Icon,

此時不是顯示Activity B,還是直接會顯示Activity A,即是把A上面的Activity都會被pop出去,Activity A顯示到棧頂,但這不是我想要的。

問題描述:

My main activity A has as set android:launchMode="singleTask" in the manifest. Now, whenever I start another activity from there, e.g. B and press the HOME BUTTON on the phone to return to the home screen and then again go back to my app, either via pressing the app's button or pressing the HOME BUTTONlong to show my most recent apps it doesn't preserve my activity stack and returns straight to A instead of the expected activity B.

Here the two behaviors:

Expected: A > B > HOME > B
Actual: A > B > HOME > A (bad!)

如何處理呢:

Just remove the launchMode="singleTask" and set FLAG_ACTIVITY_CLEAR_TOP|FLAG_ACTIVITY_SINGLE_TOP flag whenever call an intent to A

 

鏈接:https://stackoverflow.com/questions/2417468/android-bug-in-launchmode-singletask-activity-stack-not-preserved

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM