0

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

public interface Item extends Parcelable{//unneeded stuff}

我想ArrayList<Item>持久地存储一个。使ItemsSerializable 成为一种好习惯吗?

4

3 回答 3

1

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

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

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

于 2013-08-30T20:28:47.377 回答
0

通常,您根据需要使对象可打包/可序列化。如果您需要这些数据来重新创建您的 UI、传递到包等,那么您将使其可序列化。

于 2013-08-30T20:29:01.837 回答
0

制作对象Serializable不会强迫您使用任何特定的序列化方法。通用 Java 序列化效率很低,但没有什么能阻止您Serializable使用 Android 打包(只是编组Parcel到 中的流writeObject

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

于 2013-08-30T20:37:27.750 回答