我在SharedPreferences实例中存储原始数据时遇到问题。一切都按照我的想法运行,但当我关闭或退出我的应用并重新打开它时,SharedPreference中的值将恢复为默认状态。
我认为这可能与我在何处或如何设置默认值有关。以下是我所指的片段,它位于我主要活动的onCreate()中:
super
Thougts?
答案 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();
}