How to remove some key/value pair from SharedPreferences?

AndroidSharedpreferences

Android Problem Overview


How to remove some key/value pair from SharedPreferences ? I have put and I to remove that from prefs.

Android Solutions


Solution 1 - Android

SharedPreferences mySPrefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = mySPrefs.edit();
editor.remove(key);
editor.apply();

Here editor is the sharedPreferences editor.

Solution 2 - Android

It is important to note that, unless you're planning on doing something with the return value of the commit() call, there is absolutely no reason for using the synchronous commit() call instead of the asynchronous apply() call.

Keep in mind that if you're calling this from the main/UI thread, the UI is blocked until the commit() has completed. This can take upwards of around 100ms as apposed to about 5ms for the apply. That may not seem like much, but if done continually throughout an application, it will certainly add up.

So, unless you're planning on doing something like this, hopefully on a separate thread:

editor.remove(String key); 
boolean success = editor.commit();
if (!success) { 
    // do something 
}

You should instead be doing this:

editor.remove(String key); 
editor.apply();

Solution 3 - Android

It's very simple:

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();
}

Solution 4 - Android

SharedPreferences.Editor.remove(key) 
commit();

Solution 5 - Android

Here is how I tacked this issue.

First I created an instance of SharedPreference as

SharedPreferences mobilePreference;

then I used this sharedPreference as

mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);

Here "in.bhartisoftwares.amit.allamitappsthree" is my package name and I am using Context.MODE_PRIVATE, because I want to manipulate this shared preference only for this package name.

Then I am deleting the selected sharedPreference (key of my sharedPreference is mobileString) as follows:

mobilePreference.edit().remove("mobileString").commit();

See the code as full below:

SharedPreferences mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);
    mobilePreference.edit().remove("mobileString").commit();

Solution 6 - Android

Information

Just check sharedpref class is extended to Map that's why there is remove method

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = prefs.edit();
editor.remove(String key);
editor.apply();

Here editor is the sharedPreferences editor.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDamirView Question on Stackoverflow
Solution 1 - AndroidYashwanth KumarView Answer on Stackoverflow
Solution 2 - AndroidSBerg413View Answer on Stackoverflow
Solution 3 - AndroidAntônio Sérgio FerrazView Answer on Stackoverflow
Solution 4 - AndroidShailendra Singh RajawatView Answer on Stackoverflow
Solution 5 - AndroidAmit MhaskeView Answer on Stackoverflow
Solution 6 - AndroidYogesh RathiView Answer on Stackoverflow