我正在建立一個聊天客戶端Android ICS
。我有一個可以導致聊天活動的名單(聯繫人)活動(點擊名單(聯繫人)列表中的一個條目後)。然後,人們可以聊天,並可以在點擊聊天屏幕上的按鈕後回到名單屏幕。荒誕行爲的行爲
用於創建意圖的代碼開始活動的標誌是:Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
還有名冊活動屏幕上的搜索按鈕,這需要我們的搜索活動,這又允許我們去聊天活動。
這裏使用的標誌是相同的。所有三個都是singleTask。
現在的問題是,當我從名冊活動到聊天活動,然後回到名冊活動,那麼一切都很好。但是當我從名冊活動去搜索活動,然後去聊天活動,然後回到名冊活動,然後名冊活動得到重新創建,即oncreate()
名冊的功能被稱爲。這在其他流程中不會發生。
任何人都可以解釋這一點。創建一個新的搜索活動可能不讚賞,但假設它的好,可以爲什麼會發生這種情況的原因?
另外ondestroy()
名冊活動沒有被稱爲(因爲它不是強制)。
您確定要實際重新排列活動嗎?這通常會造成非常尷尬的用戶體驗,因爲它會擾亂訪問屏幕的順序。相反,看看ACTIVITY_CLEAR_TOP,通過維護一個有序的任務堆棧,可以達到類似的效果。 http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP – Matthias
所以如果我使用Intent.FLAG_ACTIVITY_REORDER_TO_FRONT那麼我的後退按鈕不會像我以前想的那樣行事?它是一個好點。 – singhsumit
否 - 自從彈出活動A重新排序到活動堆棧的前端時,您將位於堆棧的頂部,此堆棧先前包含A在不同的位置,因此您的用戶將遇到「間隙」在活動堆棧中更進一步。 – Matthias