我正在尝试保存一堆对象,以便当我关闭然后重新打开应用程序时,该堆栈仍将存在。
我尝试扩展Application来创建一个全局变量,但是在应用程序关闭时将其删除。我认为我应该使用Java的内部存储器,但不知道如何使用堆栈而不是单个对象。我很难对此进行研究,因为每当我在搜索中查找带有“堆栈”的内容时,所有内容都与运行时堆栈有关,而不是数据结构。
答案 0 :(得分:0)
存储大型数据对象的最佳方法是在Room,OrmLiite或其他包装器的帮助下使用内部SQLite数据库。
或者如果它的值较小,例如保存的选项,时间或类似值,则使用SharedPreferences存储空间
答案 1 :(得分:0)
对象必须是可序列化的。为此,您需要使用Serializable扩展您的对象 https://developer.android.com/reference/java/io/Serializable
您需要将对象以文件形式或以blob形式存储到磁盘中。
启动应用程序时,需要反序列化对象并将其加载到内存中。
尽管有上述3点的替代方法。
有一个名为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来使用您保存的变量