关闭 Android 应用程序后如何保存对象?
how can I save objects after closing my Android application?
我正在制作一个小游戏,我想在关闭应用程序时保存所有变量(对象和基本类型),以便稍后能够加载保存的游戏。
以下是一些变量:
String playerName;
Duration time;
Item[] inventory=new Item[20]; //enum
int inventoryTotalItems=0;
基本上和save variables after quitting application? or How can I save an activity state using the save instance state?一样的情况,但是我想保存的是对象,所以我不确定我可以使用首选项或Bundle那。
我还想存储多个首选项,以便能够加载不同的已保存游戏。我可以使用 onPause() 和 onResume() 执行此操作吗?
谢谢。
将此添加到您的依赖项中(在 build.gradle 文件中):
implementation 'com.google.code.gson:gson:2.8.9'
然后你可以像这样保存对象:
SharedPreferences sp = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor pe = sp.edit();
Gson gson = new Gson();
String j = gson.toJson(myObj);
pe.putString("MyObject", j);
pe.apply();
以及当您稍后想要访问该对象时:
SharedPreferences sp = getPreferences(MODE_PRIVATE);
Gson gson = new Gson();
String j = sp.getString("MyObject", null);
MyObject myObj = gson.fromJson(j, MyObject.class);
我认为你应该在 onPause() 中保存。
我正在制作一个小游戏,我想在关闭应用程序时保存所有变量(对象和基本类型),以便稍后能够加载保存的游戏。
以下是一些变量:
String playerName;
Duration time;
Item[] inventory=new Item[20]; //enum
int inventoryTotalItems=0;
基本上和save variables after quitting application? or How can I save an activity state using the save instance state?一样的情况,但是我想保存的是对象,所以我不确定我可以使用首选项或Bundle那。 我还想存储多个首选项,以便能够加载不同的已保存游戏。我可以使用 onPause() 和 onResume() 执行此操作吗?
谢谢。
将此添加到您的依赖项中(在 build.gradle 文件中):
implementation 'com.google.code.gson:gson:2.8.9'
然后你可以像这样保存对象:
SharedPreferences sp = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor pe = sp.edit();
Gson gson = new Gson();
String j = gson.toJson(myObj);
pe.putString("MyObject", j);
pe.apply();
以及当您稍后想要访问该对象时:
SharedPreferences sp = getPreferences(MODE_PRIVATE);
Gson gson = new Gson();
String j = sp.getString("MyObject", null);
MyObject myObj = gson.fromJson(j, MyObject.class);
我认为你应该在 onPause() 中保存。