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



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

编辑:忘了提到一旦用户终止流,所有值都将被删除。

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

  1. 按照您描述的方式传递Serializable。可能比其他替代方案慢

  2. Make MyObject Implementation Parcelable and use [ intent.putParcelableArrayListExtra() ](https://developer.android.com/reference/android/content/Intent.html#putParcelableArrayListExtra(java.lang.String, java.util.ArrayList))

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

最新更新