Antworten:
SharedPreferences mySPrefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = mySPrefs.edit();
editor.remove(key);
editor.apply();
Hier ist der Editor der sharedPreferences-Editor.
Es ist wichtig zu beachten, dass es absolut keinen Grund gibt, den synchronen Befehl commit () anstelle des Aufrufs asynchronly apply () zu verwenden, es sei denn, Sie planen, etwas mit dem Rückgabewert des Aufrufs commit () zu tun.
Beachten Sie, dass die Benutzeroberfläche blockiert wird, wenn Sie dies vom Haupt- / UI-Thread aus aufrufen, bis commit () abgeschlossen ist. Dies kann bis zu ca. 100 ms dauern, was ungefähr 5 ms für die Anwendung entspricht. Das scheint nicht viel zu sein, aber wenn es kontinuierlich während einer Anwendung durchgeführt wird, wird es sich sicherlich summieren.
Also, es sei denn, Sie planen so etwas, hoffentlich in einem separaten Thread:
editor.remove(String key);
boolean success = editor.commit();
if (!success) {
// do something
}
Sie sollten stattdessen Folgendes tun:
editor.remove(String key);
editor.apply();
SharedPreferences.Editor.remove(key)
commit();
Es ist sehr einfach:
private SharedPreferences sharedPreferences() {
return PreferenceManager.getDefaultSharedPreferences(mContext);
}
public void clearSharedPreferences() {
sharedPreferences()
.edit()
.remove(SOME_KEY_1)
.remove(SOME_KEY_2)
.remove(SOME_KEY_3)
.apply();
}
Hier ist, wie ich dieses Problem angegangen bin.
Zuerst habe ich eine Instanz von SharedPreference als erstellt
SharedPreferences mobilePreference;
dann habe ich diese sharedPreference als verwendet
mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);
Hier ist "in.bhartisoftwares.amit.allamitappsthree" mein Paketname und ich verwende Context.MODE_PRIVATE, da ich diese gemeinsame Einstellung nur für diesen Paketnamen bearbeiten möchte.
Dann lösche ich die ausgewählte sharedPreference (der Schlüssel meiner sharedPreference ist mobileString) wie folgt:
mobilePreference.edit().remove("mobileString").commit();
Sehen Sie den Code unten als vollständig an:
SharedPreferences mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);
mobilePreference.edit().remove("mobileString").commit();
Information
Überprüfen Sie einfach, ob die sharedpref
Klasse erweitert ist Map
, deshalb gibt es eine remove
Methode
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = prefs.edit();
editor.remove(String key);
editor.apply();
Hier ist der Editor der sharedPreferences-Editor.