0

我開發了一個具有四個選項卡的Android應用程序。其中兩個選項卡用於訪問Sqlite數據庫中的數據,一個選項卡具有顯示數據庫內容的可滾動表格,第四個選項卡顯示每10秒更新一次的進入設備的GPS數據。到目前爲止,該應用程序運行良好下面是這個應用程序中java文件所需的列表和簡要描述。在輪換期間資源更改期間保存Android會話信息片段等

MainActivity.java 

Tab1-DataEntry.java 
    (16) strings 
    (3) integers 

Tab2-DataEdit.java 
    (16) strings 

Tab3-DataTable.java 
    selecting a row in this table loads that record in Tab2-DataEdit 

Tab4-GpsData.java 
    GPS data updated every 10 seconds, several buttons. 

我也有一個DbAdapter.java文件

我就在設備資源的變化,(屏幕旋轉,對接等)存儲狀態信息我已經在網上花費時間檢查了資源的大量工作,最近開始瞭解onSaveInstanceState()onRestoreInstanceState()

問題:正在使用onSaveInstanceState()onRestoreInstanceState()是這個應用程序的不錯選擇嗎? onSaveInstanceState/onRestoreInstanceState僅在MainActivity或相關的選項卡文件(Tab1-DataEntryTab2-DataEdit)中執行?

回答

0

如果您通過setRetainInstance()指出片段,片段可以保留自己的數據。

當活動重新創建時(例如在旋轉設備後)碎片仍然存在(儘管它們的相應視圖將被丟棄並重新創建 - 「常規」生命週期回調的更改在文檔中解釋方法)。

您還應該檢查文檔的Retaining an Object During a Configuration Change部分。

+0

與此相關的Stackoverflow問題在這裏:http://stackoverflow.com/questions/24331434/android-actionbar-tabs-instantiation-related-to-hardware-resource-changes-rotat GitHub項目瓦特/解決方案代碼在這裏:https://github.com/portsample/FragmentTabRotation感謝您的幫助。 – portsample