如何删除应用程序的SharedPreferences数据?

我正在创建一个使用大量web服务来同步数据的应用程序。出于测试目的,我需要在重新启动应用程序时删除一些SharedPreferences值。


当前回答

即使没有根电话,也可以使用adb shell来完成此任务。唯一的问题是应用程序必须是可调试的。

run-as <your package name> <command>

例如:

run-as com.asdf.blah rm /data/data/com.asdf.blah/databases/myDB.db

或者,你可以只做上面的操作,但不使用命令,该命令将引导你到应用程序包的根目录,并允许你在应用程序的上下文中执行更多命令。

其他回答

似乎所有的解决方案都不是完全有效或死亡

清除活动中的所有SharedPreferences

PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit().clear().apply();

从onCreate之后的Main Activity调用这个

注:我使用了.apply()而不是.commit(),你可以自由选择commit();

Editor editor = getSharedPreferences("clear_cache", Context.MODE_PRIVATE).edit();
editor.clear();
editor.commit();
new File(context.getFilesDir(), fileName).delete();

我可以在共享首选项中删除文件

如果是为了你的测试。可以使用adb命令。

adb shell pm clear <package name>

要删除特定的值:SharedPreferences.Editor.remove()后面跟着一个commit()

SharedPreferences.Editor.clear()后面跟着一个commit()

如果您不关心返回值,并且从应用程序的主线程中使用它,请考虑使用apply()。