在SQLite数据库中存储共享值与传递意图

时间:2017-01-15 18:20:42

标签: java android sqlite android-intent

我的应用程序最初请求服务器中的对象列表。这些对象当前作为ArrayList<MyObject>保存在内存中。但是,我希望在用户通过按下按钮终止流之前,将这些对象传递给多个活动。我可以使ArrayList可序列化并通过Intent extras传递它。但我也可以将MyObject(s)存储在SQLite数据库中,并在任何Activity中访问/修改它们,而不必通过意图。我想知道实现这一目标的标准是什么。

编辑:忘记提及一旦用户终止流程,将删除所有值。

1 个答案:

答案 0 :(得分:1)

SQLite不是最适合您的情况,因为您在关闭应用程序后不需要数据持久化。它只会减慢您的应用程序必须存储和检索每个活动转换的所有条目。您可以改为执行以下操作之一:

  1. 按照您描述的方式传递Serializable

  2. 可能比其他选择慢
  3. MyObject实施Parcelable并使用[intent.putParcelableArrayListExtra()](https://developer.android.com/reference/android/content/Intent.html#putParcelableArrayListExtra(java.lang.String,java.util.ArrayList))

  4. 扩展Application并从Application.onCreate()的网络加载列表,然后从需要它的活动中调用getList()。这样你加载一次就不需要在不同的活动之间传递它。