关闭 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() 中保存。