应用重新启动时,共享首选项不会保留

时间:2013-04-03 16:07:12

标签: java android sharedpreferences

我正在创建一个应用,我希望用户能够保存他们的偏好。我正在使用共享首选项:

private void writeSettings(String val){
PreferenceManager.getDefaultSharedPreferences(context).edit().putString("status", val).commit();
        Log.d("stat", val);
}

这很好用,阅读效果很好。如果我关闭应用程序并重新启动它,它就消失了。除非删除应用程序,否则不应保存首选项?

2 个答案:

答案 0 :(得分:1)

你在哪里调用writeSettings方法?如果在onStop()或onDestroy()中,有时这些不会被调用。如果是这种情况,请将您的代码添加到onPause()。

除此之外,您可以尝试将它们保存在链中,例如:

// save string in sharedPreferences 
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = settings.edit();
editor.putString("some_key", value); // here value is the string you want to save
editor.commit();                    

// restore string in sharedPreferences (usually you have this onCreate method) 
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String string = settings.getString("some_key", "");

答案 1 :(得分:1)

您必须使用commit()方法在sharedprefernce中将更改保存为一致状态。

请参阅:http://developer.android.com/reference/android/content/SharedPreferences.html#edit%28%29