我正在创建一个应用,我希望用户能够保存他们的偏好。我正在使用共享首选项:
private void writeSettings(String val){
PreferenceManager.getDefaultSharedPreferences(context).edit().putString("status", val).commit();
Log.d("stat", val);
}
这很好用,阅读效果很好。如果我关闭应用程序并重新启动它,它就消失了。除非删除应用程序,否则不应保存首选项?
答案 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