2014-11-04 75 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

相关问题