【发布时间】:2013-09-03 15:35:08
【问题描述】:
我有两个实现接口Item的对象:
public interface Item extends Parcelable{//unneeded stuff}
我想永久存储ArrayList<Item>。使Items Serializable 成为一种好习惯吗?
【问题讨论】:
标签: android arraylist parcelable serializable
我有两个实现接口Item的对象:
public interface Item extends Parcelable{//unneeded stuff}
我想永久存储ArrayList<Item>。使Items Serializable 成为一种好习惯吗?
【问题讨论】:
标签: android arraylist parcelable serializable
Parcelable 和 Serializable 都不是持久化数据的好主意。如果可能,将持久性数据存储在 SharedPreferences 中,或者将其存储到文件中。
如果您决定更改对象的结构,Serializable 可能会打击您。 Parcelable 不保证在不同版本之间保持不变;它旨在在进程之间传递数据,而不是存储数据。
如果您想长期存储数据,则应将其写入文件。根据您想要访问它的方式,您可能希望将其存储在数据库或内容提供程序中。
【讨论】:
通常,您可以根据需要使对象可打包/可序列化。如果您需要这些数据来重新创建您的 UI、传递到包等中,那么您将使其可序列化。
【讨论】:
创建对象Serializable 不会强制您使用任何特定的序列化方法。通用 Java 序列化效率很低,但没有什么能阻止您使 Serializable 使用 Android 打包(只需将 Parcel 编组到 writeObject 中的流)
但我怀疑您是否真的需要序列化来实现数据持久性。在大多数情况下,共享首选项或数据库效果更好。
【讨论】: