如何序列化并保存一堆对象?

时间:2019-04-19 07:43:19

标签: java android

我正在尝试保存一堆对象,以便当我关闭然后重新打开应用程序时,该堆栈仍将存在。

我尝试扩展Application来创建一个全局变量,但是在应用程序关闭时将其删除。我认为我应该使用Java的内部存储器,但不知道如何使用堆栈而不是单个对象。我很难对此进行研究,因为每当我在搜索中查找带有“堆栈”的内容时,所有内容都与运行时堆栈有关,而不是数据结构。

3 个答案:

答案 0 :(得分:0)

存储大型数据对象的最佳方法是在Room,OrmLiite或其他包装器的帮助下使用内部SQLite数据库。

或者如果它的值较小,例如保存的选项,时间或类似值,则使用SharedPreferences存储空间

答案 1 :(得分:0)

  1. 对象必须是可序列化的。为此,您需要使用Serializable扩展您的对象 https://developer.android.com/reference/java/io/Serializable

  2. 您需要将对象以文件形式或以blob形式存储到磁盘中。

  3. 启动应用程序时,需要反序列化对象并将其加载到内存中。

尽管有上述3点的替代方法。

有一个名为SnappyDb的开源库,可以持久保存键值对并非常快速地进行序列化和序列化。

https://github.com/nhachicha/SnappyDB

答案 2 :(得分:-1)

您需要使用sharedPreferences。

我将向您展示如何保存字符串并使用它。

第1步:SharedPreferences sharedPreferences;

第二步:sharedPreferences= this.getSharedPreferences("ur choosen name",0);

第3步:sharedPreferences.getString("mystring","");

step4:`sharedPreferences.edit.PutString(“ mystring”,“我想要的东西

保存”).commit();`

现在已保存

第5步:String mystring;

第6步:mystring = sharedPreferences.getString("mystring","");

使用步骤5和6来使用您保存的变量