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