使用 Parcelable 或使用 SQLite 跨 Activity 发送数据是否更便宜?我正在使用 SQLite(通过 Content Provider)来保存我的数据。所以实际上我总是可以通过 SQLite 访问我的数据。但是我不确定我是否应该使用 Parcelable 跨 Activity 发送数据,或者我应该每次都抓取它们。
细节。假设我有一个 Village 对象。因此,Village 自然是比较大的:例如,它包含人物列表,而列表又可能包含衣服列表。在每个 Activity 的 onPause 中,我将 Village 保存到我的内容提供者。但有时我想将一个 Village 对象从一个 Activity 发送到另一个。我有两个选择:我可以将 dbId 发送到下一个 Activity ,然后查询 URI(然后将游标转换为 POJO),或者我可以发送一个 Village 的 Parcelable。哪个更贵?
说 Parcelable 更便宜(我还不知道)。现在我正在努力让 Parcelable 工作。让 Parcelable 工作值得付出努力吗?
最佳答案
如果您的对象可以很大,那么通过 ContentProvider
访问是可行的方法。您不仅可以避免编码/解码时间和代码,而且 Parcelable
是 limited to 1MB .
The Binder transaction buffer has a limited fixed size, currently 1Mb, which is shared by all transactions in progress for the process.
关于Android Parcelable 与 SQLite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34957919/