How do I delete SharedPreferences data for my application?
I\'m creating an application that uses a lot of web services to sync data. For testing purposes, I need to
new File(context.getFilesDir(), fileName).delete();
I can delete file in shared preferences with it
My solution:
SharedPreferences preferences = getSharedPreferences("Mypref", 0);
preferences.edit().remove("text").commit();
None of the answers work for me since I have many shared preferences keys.
Let's say you are running an Android Test instead of a unit test.
It is working for me loop and delete through all the shared_prefs files.
@BeforeClass will run before all the tests and ActivityTestRule
@BeforeClass
public static void setUp() {
Context context = InstrumentationRegistry.getTargetContext();
File root = context.getFilesDir().getParentFile();
String[] sharedPreferencesFileNames = new File(root, "shared_prefs").list();
for (String fileName : sharedPreferencesFileNames) {
context.getSharedPreferences(fileName.replace(".xml", ""), Context.MODE_PRIVATE).edit().clear().commit();
}
}
Seems that all solution is not completely working or out-dead
to clear all SharedPreferences in an Activity
PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit().clear().apply();
Call this from the Main Activity after onCreate
note* i used .apply()
instead of .commit()
, you are free to choose commit();
To remove the key-value pairs from preference, you can easily do the following
getActivity().getSharedPreference().edit().remove("key").apply();
I have also developed a library for easy manipulation of shared preferences. You may find the following link
https://github.com/farruhha/SimplePrefs
As of API 24 (Nougat) you can just do:
context.deleteSharedPreferences("YOUR_PREFS");
However, there is no backward compatibility, so if you're supporting anything less than 24, stick with:
context.getSharedPreferences("YOUR_PREFS", Context.MODE_PRIVATE).edit().clear().apply();