0

我正在制作一个小游戏,我想在关闭应用程序时保存所有变量(对象和基本类型),以便以后能够加载保存的游戏。

以下是一些变量:

    String playerName;
    Duration time;
    Item[] inventory=new Item[20]; //enum
    int inventoryTotalItems=0; 

与退出应用程序后保存变量基本相同的情况?或如何使用保存实例状态保存活动状态?但我要保存的是对象,所以我不确定我是否可以为此使用首选项或捆绑包。我还希望存储多个首选项,以便能够加载不同的已保存游戏。我可以用 onPause() 和 onResume() 做到这一点吗?

谢谢。

4

1 回答 1

0

将此添加到您的依赖项中(在 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() 中。

于 2022-01-08T05:53:17.527 回答