我有一個小應用程序,它有一個單獨的Activity並顯示片段中的內容。因此,我通過用下一個替換當前片段(並將它們放在後端堆棧中)來瀏覽我的應用程序。FragmentTransaction onSaveInstanceState
該應用程序被鎖定在肖像中,因此該活動永遠不會被銷燬。
所以我的問題是,在導航到片段B之前,如何保存片段A的「實例狀態」,並在按下後退按鈕並且片段A將再次顯示在屏幕上時恢復實例狀態。
據我所知,在片段中的onSaveInstanceState被綁定到activites生命週期,並且只有在活動被破壞時才被調用。由於即時通訊使用單個活動並使用片段事務,因此活動永遠不會被銷燬,因此onSaveInstanceState永遠不會被調用。
所以我嘗試的第二種方法是使用Fragment.getArguments()和Fragment.setArguments()。 但是,一旦碎片已被實例化,我不能改變參數(IllegalStateException)。
因此,任何其他的想法或提示如何處理這種情況下的片段實例狀態(單個活動,使用片段事務)?
請閱讀此處:http://developer.android.com/guide/components/fragments.html#Lifecycle,http://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack%28java。 .Sarry,當它足夠讀取10行時,很難提供洞察力。我將在下次複製粘貼。 –
我已閱讀文檔,但無法弄清楚你的意思。 – sockeqwe