2013-04-26 196 views
0

我有一個儀表板Activity和一個用戶Activity。在儀表板的每個操作中,我將使用startActivity(開始用戶Activity)。如果用戶按下用戶Activity中的按鈕,我想再次顯示儀表板Activity。請給出指導方針來實現這一點,當儀表板Activity由於內存不足而死亡時也應該處理這個問題。在活動之間切換

+0

使用此答案檢查'Dashboard Activity'是否仍在'Activity Stack'中:http://stackoverflow.com/a/6242122/450534。如果不是,則激發一個Intent以再次啓動'Dashboard Activity'並在當前的Activity上調用'finish()'。理論上,我認爲這將起作用。由於我沒有測試過,所以作爲評論。 ;-) – 2013-04-26 04:07:58

+0

in onPause()在活動結束時,您可以使用檢查if(isFinishing())是否在您的活動中執行代碼 – JRowan 2013-04-26 04:09:16

回答

0

Android框架將爲您提供幫助。當您撥打startActivity()時,它會將新活動推送到當前任務堆棧的頂部(除非您調整啓動模式或設置意圖標誌)

當用戶按回時,它將當前活動從堆棧彈出並返回到先前的活動。

如果該框架殺死了以前的任何活動,則會重新創建它們。如果您在這些活動中仍有需要的實例數據,則應該覆蓋onSaveInstanceState()來存儲它,並且onRestoreInstanceState()來覆蓋它(具有分配ID的系統視圖中的數據將自動保存/恢復)。

詳情請參閱Tasks and the Back Stack

唯一可能棘手的部分是,如果您通過intent跳轉到用戶頁面上的應用程序,但仍然想要返回儀表板,則需要確保通過TaskStackBuilder準備回棧。