SharedPreference数据存储困难,退出时丢失值

时间:2015-05-19 15:48:12

标签: android

我在SharedPreferences实例中存储原始数据时遇到问题。一切都按照我的想法运行,但当我关闭或退出我的应用并重新打开它时,SharedPreference中的值将恢复为默认状态。

我认为这可能与我在何处或如何设置默认值有关。以下是我所指的片段,它位于我主要活动的onCreate()中:

super

Thougts?

1 个答案:

答案 0 :(得分:1)

当您的活动"重新启动时,Bundle != null"。例如,当屏幕旋转或系统杀死后台活动并重新创建它。否则它等于null。因此,要在不同的活动实例之间保存一些数据,您需要检查是否先保存数据。

样品:

SharedPreferences preferences = getSharedPreferences("preferences", MODE_PRIVATE);
int highScore = preferences.getInt("highscore", -1);

if (highScore == -1) {
    //preferences was never used, so put default value
    highScore = 0;
    preferences.edit().putInt("highscore", highScore).commit();
}