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