2014-11-04 34 views
0

我需要存儲自定義對象的array以在Android中填充ListView。我獲取數據來填充ListViewFragment,這是NavigationDrawer(碎片被頻繁替換)的一部分。下一次啓動Fragment時,數據將被再次提取。即使當我去另一個Activity並回來時,我也希望這些數據持續存在。 我不考慮使用database,因爲我不需要在用戶重新啓動應用程序時恢復數據。只要用戶正在使用該應用程序,我就需要這些數據。在Android中存儲跨越片段和活動生命週期的數據

我已經考慮了以下方法:

  1. Singleton類
  2. 子類應用程序類
  3. 在片段/活動

保存實例狀態是否罰款在Application子類中存儲2000個對象的數組?有沒有更好的方法來做到這一點?

回答

0

你不應該考慮使用Singleton類,如果你希望自己的數據是persistent.The最佳Android做法存儲持久性數據是:

1.Application Preferences 
2.Files 
3.contentProviders 
4.SQLite DB 

你可以閱讀更多關於它在這裏:http://developer.android.com/guide/faq/framework.html

+0

我不希望數據在用戶關閉並重新打開應用程序時保持不變。我只需要一種方法在Fragment和Activity生命週期中保存數據。 1->在fragment1中,此處獲取的數據和ListView已填充。 2-> Fragment1被相同Activity中的Fragment 2所取代(Fragment1被銷燬)。如果我回到Fragment1,我將不得不重新提取數據。 如果我移動到另一個活動並返回片段活動,我將不得不重新提取數據。 **我想要的只是一種在Fragment生命週期中存儲數據的方法,在退出應用程序時應清除數據。** – user3316561 2014-11-04 08:17:07

+0

好的,那麼您應該看看「Non-Persistent Objects」部分在上面提到的鏈接中解釋。 – vkm 2014-11-04 08:42:45

+0

我正在考慮做這樣的事情:http://www.devahead.com/blog/2011/06/extending-the-android-application-class-and-dealing-with-singleton/ 我需要存儲大小高達2000的自定義對象的數組。不是應用程序子類用於存儲少量的全局變量嗎? – user3316561 2014-11-04 08:49:34