這是一個比任何問題更多的結構/設計哲學問題。我應該保存宿主活動或其碎片的持久數據嗎?
我有主要的主機活動,當前保存和加載配置文件供用戶查看。 配置文件的憑據顯示在片段A(用戶名,生日等)中。這是通過將配置文件作爲參數傳遞給片段來完成的,然後再使用片段事務來顯示它。
如果用戶離開或旋轉他們的屏幕,我應該如何去保存該配置文件數據?我應該從片段A或其HostActivity中的onPause進行保存嗎?
如果片段A還允許配置文件編輯呢?當用戶確認他們的變化時,我是否應該讓HostActivity知道從活動中更新主要個人資料?
或者等到一個FragmentA.onPause被調用後會更好嗎?我想我可以等到某些東西強制片段調用onPause,此時我可以保存片段的狀態以及主機活動的配置文件活動。
令我困惑的主要問題是:我是否需要管理兩個Profile對象? HostActivity及其FragmentA都使用它。在保存,加載和編輯之間來回運行會讓人有點困惑。我不能從一個班級處理所有這些嗎?
好吧,我有兩個非常好的和可行的答案。哪一個更適合我的目的?我應該使用sqlLite數據庫還是全局Java單例來處理我的配置文件?每個會話只能有一個配置文件被激活。還必須考慮保存,加載和編輯配置文件。
這也是一個可行的選擇。你能告訴我如何使用單例可能比使用SQLite數據庫更好嗎? –
@ TonyN.Tran它意味着數據將在應用程序中快速訪問而不是在數據庫中(如果遠程則需要相當長的時間才能訪問)如果本地可能會更快,但我還沒有使用過這樣的數據庫我不會是最好的徵求意見。就我個人而言,我認爲使用'singleton類'可以更快,因爲您不必編寫任何'SQL',對於您的場景,似乎它可能更簡單。看到[這裏](http://developer.android.com/guide/topics/data/data-storage.html)更多關於從android開發指南存儲的信息 – ilovepjs
我決定使用你的方法,因爲只有一個配置文件可以一次激活。配置文件可以在本地或通過雲端保存/加載,但一次只能加載一個。但是,我會爲我的應用程序的另一部分使用SQLite,這將確實需要一個數據庫。所以感謝你的建議@rosorio。 :) –