0
我有一個主要活動,保存片段。 如果我按回家按鈕,然後重新輸入我的應用程序,我想恢復碎片疊疊,因爲我從來沒有離開過。 這可能嗎?我可以做嗎?恢復活動與正確的片段
我有一個主要活動,保存片段。 如果我按回家按鈕,然後重新輸入我的應用程序,我想恢復碎片疊疊,因爲我從來沒有離開過。 這可能嗎?我可以做嗎?恢復活動與正確的片段
我不明白你的問題,但如果你想回到以前的片段,你必須使用addToBackStack(null)。
試想一下,你是在一個片段:FragmentA和你打電話的片段B
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragments_container, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_NONE);
ft.addToBackStack(null);
ft.commit();
如果不添加行ft.addToBackStack(空),當用戶按從後退按鈕片段B,你永遠不會回到片段A.但是如果你使用這一行,意味着你將在片段隊列中包含片段A,然後傳遞到片段B.這樣,當後面按鈕,您將回到片段A.
是您的問題嗎?
不是這樣。我的問題是:如果我離開我的應用程序(例如,按主頁按鈕)。當我重新輸入我的應用時,我想顯示當我離開最後一次時可見的片段。 –
例如,當你按主頁按鈕時,你的應用程序沒有關閉,它仍然在後臺運行,所以你不必做任何事情,當你回到應用程序時,它會記住哪個片段是之前加載。其他主題是應用程序完全關閉,或者因爲Android系統需要更多資源並決定關閉應用程序(它位於後臺)。 –
在這種情況下,我不確定是否有本機方式保留碎片隊列,但您可以這樣做,當應用程序調用您的活動的onClose方法時,使用共享偏好來保存碎片隊列。當應用程序再次打開時,您可以恢復上次會話的碎片隊列。無論如何,我認爲你並不需要這個任務......通常,當一個應用程序關閉時,應該打開主屏幕。 –