我目前正在寫一個聊天應用程序。它基本上與WhatsApp非常相似: 在啓動時會有上次對話概述。Android BackStack清除,但保持根
當我想開始一個我必須做一個新的會話/傳
- 最後談話概要活動(點擊+來尋找對話夥伴)
- 課程活動(選擇課程)
- 學員活動(選配夥伴)
- 對話活動
使基本上是堆棧:[A1,A2,A3,A4]
現在,用戶與某個課程成員進行了很好的聊天,並希望返回上一個對話概述,但是當他按下後退按鈕時, A3,「課程參與者活動」。
我希望用戶通過按下A4中的後退按鈕返回到A1。
WRONG:[A1,A2,A3,A4] - >回 - > [A1,A2,A3]
RIGHT:[A1,A2,A3,A4] - >回 - > [A1]
或者我能想象
RIGHT:〔A1,A2,A3] - >啓動A4 - > [A1,A4]
在此先感謝。
[編輯]
答案
它原來是這兩種的組合。
in onOptionsItemSelected()由於給定的谷歌約定,我把這個(在開關情況當然)。你 清單launchMode爲singleTop:
final Intent intent = new Intent(this, MainPage.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
和
定義活動A1的Android。
爲什麼組合?剛剛添加平面Intent.FLAG_ACTIVITY_CLEAR_TOP
殺死活動A1。由於這是我的拳頭活動,因此它包含了一些註冊/檢查實施。當我在它被銷燬之後再次開始這個活動時,創建被不必要地調用。
發射模式singletop
阻止了這一點。