0

我正在制作一个应用程序,我希望用户能够保存他们的偏好。我正在使用这样的共享首选项:

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

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

4

2 回答 2

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", "");
于 2013-04-03T16:24:10.837 回答
1

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

参考这个:http: //developer.android.com/reference/android/content/SharedPreferences.html#edit%28%29

于 2013-04-03T16:27:13.120 回答