共享首选项问题,在调用clear后不释放值

时间:2013-04-24 14:15:27

标签: android sharedpreferences

在我的应用程序中,我想在按钮点击时清除SharedPreferences。这就是我用来存储值的原因:

SharedPreferences clearNotificationSP = getSharedPreferences("notification_prefs", 0);
SharedPreferences.Editor Notificationeditor = clearNotificationSP.edit();
Notificationeditor.putString("notificationCount", notificationCountValue);
Notificationeditor.commit();

关于onClick()的以下代码:

SharedPreferences clearedNotificationSP = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editorSP = clearedNotificationSP.edit();
editorSP.remove("notificationCount");
editorSP.commit();

System.out.println("Saved in SP clearedNotification: "+ clearNotification);

清除后我打印了这个值但仍然得到了相同的值。

我错过了什么?

任何形式的帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

getDefaultSharedPreferencesgetSharedPreferences("notification_prefs", );

返回两个不同的SharedPreferences。由于您要在notificationCount内添加notification_prefs,因此您应该使用getSharedPreferences("notification_prefs", );

检索SharedPreference

getDefaultSharedPreferences使用默认的首选项文件名,而getSharedPreferences使用您提供的文件名作为参数