Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中持久化可包裹对象_Java_Android_Serializable_Parcelable - Fatal编程技术网

Java 在Android中持久化可包裹对象

Java 在Android中持久化可包裹对象,java,android,serializable,parcelable,Java,Android,Serializable,Parcelable,我在我的Android应用程序中有一个类,我把它做成了可包裹的,这样它就可以在活动之间传递 我希望能够将此对象保存到文件系统。似乎因为我已经实现了Parcelable,所以将它的输出通过管道传输到文件系统,稍后再将其读回是有意义的 有没有正确的方法可以做到这一点?或者,如果我想在活动之间传递对象并将其保存到文件系统,我必须同时实现Parcelable和Serialiazble吗 Parcel不是通用的序列化机制。此类(以及用于将任意对象放入地块的相应Parcelable API)设计为高性能IP

我在我的Android应用程序中有一个类,我把它做成了可包裹的,这样它就可以在活动之间传递

我希望能够将此对象保存到文件系统。似乎因为我已经实现了Parcelable,所以将它的输出通过管道传输到文件系统,稍后再将其读回是有意义的

有没有正确的方法可以做到这一点?或者,如果我想在活动之间传递对象并将其保存到文件系统,我必须同时实现Parcelable和Serialiazble吗

Parcel不是通用的序列化机制。此类(以及用于将任意对象放入地块的相应Parcelable API)设计为高性能IPC传输。因此,不适合将任何地块数据放入永久性存储:地块中任何数据的底层实现中的更改都可能导致旧数据无法读取


对于此问题,我执行了以下操作:

  • 在我的对象中实现了可序列化
  • 添加了一个toJSON()方法来将对象转换为JSON对象
  • 使用自定义JSONSerializer将JSON对象写入文件
  • 添加了一个将JSON对象作为参数的构造函数,由自定义JSONSerializer使用
  • 结果非常简单…如果需要,我可以粘贴一些示例代码