【发布时间】:2017-08-21 03:51:33
【问题描述】:
我目前在 Android 应用程序中遇到持久对象状态的问题。
我有某种多级主从流程。
例如,我有一个Clients 的列表。每个Client 有多个Orders,每个Order 有多个Articles。
到目前为止,我做了以下事情:
- 当您单击MasterActivity 中的Client 时,我将Client 写入Bundle 并打开DetailActivity。
- 在DetailActivity 中,我从Bundle 中读取Client 并显示它。
这在大多数情况下或多或少都很好,但是现在发生了,对象太大而无法序列化(例如,Client 带有很多 Orders)。
因此,我只想序列化Client 的ID,并从DetailActivity 内的数据库中加载它。通常这种方法效果很好,但我有一种情况它不起作用:
只有当您保存Order(他们的Master)时,Articles 才会被保存。因此,如果您为 Order 创建新的 Article 并且不保存 Order,则 Article 也不会保存。
这意味着,我总是需要拥有完整的对象,从DetailActivity 中的数据库重新加载它意味着我丢失了所有未保存的更改。但是,使用Bundles 持久化它可能会超出限制(500kB to 1MB)。
所以我的问题是,保存此类数据的首选方式是什么?
【问题讨论】:
标签: android android-intent android-activity serialization