如何删除应用程序的SharedPreferences数据?
我正在创建一个使用大量web服务来同步数据的应用程序。出于测试目的,我需要在重新启动应用程序时删除一些SharedPreferences值。
如何删除应用程序的SharedPreferences数据?
我正在创建一个使用大量web服务来同步数据的应用程序。出于测试目的,我需要在重新启动应用程序时删除一些SharedPreferences值。
当前回答
从任意类中集中清除所有SharedPreferences:
public static SharedPreferences.Editor getEditor(Context context) {
return getPreferences(context).edit();
}
然后从任何类:(commit返回一个布尔值,你可以检查你的Preferences是否被清除)
Navigation.getEditor(this).clear().commit();
或者你可以用apply;返回为空
Navigation.getEditor(this).clear().apply();
其他回答
在类定义中:
private static final String PREFERENCES = "shared_prefs";
private static final SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(PREFERENCES, MODE_PRIVATE);
类内部:
public static void deleteAllSharedPrefs(){
sharedPreferences.edit().clear().commit();
}
你总可以用程序来做就像这里其他答案所建议的那样。但是出于开发目的,我发现这个插件非常有用,因为它大大加快了我的开发速度。
插件:ADB Idea
它为您提供了功能,以清除应用程序数据和撤销权限从您的Android工作室本身,只需点击一个按钮。
一行删除Android共享首选项:-)
context.getSharedPreferences("YOUR_PREFS", 0).edit().clear().commit();
或申请非阻塞异步操作:
this.getSharedPreferences("YOUR_PREFS", 0).edit().clear().apply();
要删除特定的值:SharedPreferences.Editor.remove()后面跟着一个commit()
SharedPreferences.Editor.clear()后面跟着一个commit()
如果您不关心返回值,并且从应用程序的主线程中使用它,请考虑使用apply()。
即使没有根电话,也可以使用adb shell来完成此任务。唯一的问题是应用程序必须是可调试的。
run-as <your package name> <command>
例如:
run-as com.asdf.blah rm /data/data/com.asdf.blah/databases/myDB.db
或者,你可以只做上面的操作,但不使用命令,该命令将引导你到应用程序包的根目录,并允许你在应用程序的上下文中执行更多命令。