为可持续存储序列化Parcelable对象是一个好习惯吗?

时间:2013-08-30 20:14:59

标签: android arraylist parcelable serializable

我有两个实现接口Item的对象:

public interface Item extends Parcelable{//unneeded stuff}

我想永久存储ArrayList<Item>。是否使Items Serializable成为一种良好的做法?

3 个答案:

答案 0 :(得分:1)

Parcelable和Serializable都不是持久化数据的好主意。如果可能,将持久性数据存储在SharedPreferences中,或将其移出到文件中。

如果您决定更改对象的结构,Serializable可能会打击您。 Parcelable不保证在不同版本中保持不变;它旨在在进程之间传递数据,而不是存储数据。

如果要长期存储数据,则应将其写入文件。根据您的访问方式,您可能希望将其存储在数据库或内容提供商中。

答案 1 :(得分:0)

通常,您可以根据需要制作可对象/可序列化的对象。如果您需要这些数据来重新创建UI,请将其传递到捆绑包等,然后您可以将其序列化。

答案 2 :(得分:0)

使对象Serializable不会强制您使用任何特定的序列化方法。通用Java序列化是非常低效的,但没有什么可以阻止您使Serializable使用Android parcelization(只为Parcel中的流编组writeObject

但我怀疑你真的需要序列化数据持久性。在大多数情况下,共享首选项或数据库的工作效果更好。