Sharedpreference仅在应用重启后保存最新的字符串

时间:2016-10-10 22:19:51

标签: android

我目前正在尝试在本地保存聊天名,但只保存了最新的偏好设置。下面是我将字符串保存到特定键的方式。

public void saveSettings(Context context, String key, String value){
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
    SharedPreferences.Editor editor = preferences.edit();
    editor.putString(key, value).apply();

这是我检索字符串的方式:

public String getString(Context context, String key, String defaultValue){
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
    return preferences.getString(key,defaultValue);
}

问题是它只返回最后保存的字符串,其余的键将返回defaultvalue。例如,我用第一种方法用3个不同的键保存3个不同的字符串。尝试使用getString()检索字符串时 它只会返回上次保存的密钥的字符串。

2 个答案:

答案 0 :(得分:0)

也许我错了,但我在编辑器上看不到提交......

答案 1 :(得分:0)

正式保存首选项的方法是使用commit()方法,如下所示:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = preferences.edit();
editor.putString(key, value);
editor.commit();