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

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