0
我有三個活動A,B和C.
A是我的應用程序的主要活動。
A和C,也可以從選項菜單開始,B從A
開始我想以下行爲:如何清除完整背堆棧(以及可能的解決方案)
- 應用程序開始使用A:回堆棧{A}
- 從A,我瀏覽到B:回堆棧{A,B}
- 從選項菜單,我開始C:返回堆棧{C}
1和2是微不足道的,但我沒有成功讓3工作。
我嘗試了很多FLAG_ACTIVITY的組合,但沒有成功
我感覺這是不可能的。
我在考慮創建一個DummyRoot活動,它只是用來啓動另一個活動(在Intent.getExtras()中傳遞實際的活動名稱來啓動)。我可以給這個DummyRoot活動FLAG_ACTIVITY_CLEAR_TOP。
通過這樣做,我會得到
- 應用與DummyRoot(A)開始:背堆棧{DummyRoot,A}
- 從A,我瀏覽到B:回堆棧{DummyRoot,A, B}
- 從選項菜單,我開始DummyRoot(C):回堆棧{DummyRoot,C}
你預見到這種方法的問題? 這是首先需要的還是可以以更優雅的方式清除後堆棧?
您可以指出在啓動C時應使用哪些標誌從後端堆棧中刪除A/B?我確實閱讀了文檔,但沒有找到合適的組合。 – 2012-03-19 16:40:02
我會說,FLAG_ACTIVITY_CLEAR_TASK將是一個看看,也是下面的文檔http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html – Mimminito 2012-03-19 16:42:21
這看起來確實像一個很好的候選人,但是......它只能從API級別11獲得,並且我必須支持API級別8(應該提到,以此開始)。 – 2012-03-19 16:45:03