我的主要活動A已設置android:launchMode="singleTask"在清單中?,F在,每當我從那里開始其他活動時,例如B,按HOME BUTTON電話上的返回主屏幕,然后再次返回我的應用程序,方法是按應用程序的按鈕或HOME BUTTON長按以顯示我最近的應用程序,不會保留我的活動堆棧并直接返回A而不是預期的活動B。這里有兩種行為:Expected: A > B > HOME > BActual: A > B > HOME > A (bad!)是否有我缺少的設置,或者這是一個錯誤?如果是后者,在修正錯誤之前是否有解決方法?僅供參考:這個問題已經在這里討論了。但是,似乎還沒有任何真正的解決方案。
3 回答

UYOU
TA貢獻1878條經驗 獲得超4個贊
這不是錯誤。singleTask啟動現有活動時,堆棧中位于其之上的所有其他活動將被銷毀。
當您HOME再次按下并啟動活動時,ActivityManger調用意圖
{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]flag=FLAG_ACTIVITY_NEW_TASK|FLAG_ACTIVITY_RESET_IF_NEEDED cmp=A}
因此,結果為A> B> HOME>A。
當A的launchMode為“標準”時,情況有所不同。包含A的任務將來到前臺,并保持與以前相同的狀態。
您可以創建“標準”活動,例如。C作為啟動器,C的onCreate方法中的startActivity(A)
要么
只要將意圖調用給A即可刪除launchMode="singleTask"and set FLAG_ACTIVITY_CLEAR_TOP|FLAG_ACTIVITY_SINGLE_TOP標志
- 3 回答
- 0 關注
- 491 瀏覽
添加回答
舉報
0/150
提交
取消