共享首选项未按预期工作

Shared preferences not working as intended

我正在使用共享首选项来存储一个整数,它将成为我创建的游戏的最高分。问题是它根本没有被存储。当我重新启动我的 device/shutdown 应用程序或任何高分都消失了。有什么问题?

商店

 SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("your_int_key", highScore);
editor.commit();

检索

SharedPreferences sp1 = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
int highScoreSaved = sp1.getInt("your_int_key", 0);

如果您希望我添加更多代码,请告诉我。谢谢!

在获取 SharedPreference 实例时尝试使用它:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this /* Current context */);

因此键值对将存储在应用程序中所有活动将共享的默认文件中,无论您传递给它的上下文如何。

但是,如果您不想使用该文件的默认实例,您可以编辑您的代码以使其使用应用程序上下文:

SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("prefs_file", Context.MODE_PRIVATE);

通常我更喜欢第一种方法,因为它更灵活且易于与单个实例文件一起使用。