在Android应用程序中存储临时下载的数据

时间:2015-02-17 19:14:15

标签: java android rest design-patterns android-fragments

我有几个显示下载内容的应用程序。 因此,数据通过REST获取XML,然后解析为ArrayList<MY_MODEL_CLASS>。 应用程序由带有Fragments的ViewPager组成,它们也有嵌套的Fragments。用户打开相应的片段时会加载数据。

目前,所有ArrayLists都是Fragments(private ArrayList<Event> downloadedEvents;)中的常用类字段。为防止数据丢失并在方向更改后重新下载,片段设置为setRetainInstance(true);。但是子片段不允许这样做,因此数据丢失并重新下载。

当然,我可以保存实例状态,将ArrayList保存为Bundle为Parcelable,make ArrayList为静态等。

<小时/> 我的问题更具理论性,实用性:我想知道在应用程序中运行而不是将其写入的应用程序内的的良好做法持久性内存为SQLite。
我的变种是:

  • 将数据存储在片段中,这些片段显示相应的数据,并保存实例状态以在方向更改之间保留ArrayList。
  • 将数据存储在片段中,但只需将字段设置为静态以保留对象重新创建。
  • 制作一个存储所有片段所有数据的单例对象。

但我想,没有一个真的很好。

专业人士使用哪些解决方案(模式)? 谢谢! :)

0 个答案:

没有答案