如何删除应用程序的SharedPreferences数据?
我正在创建一个使用大量Web服务来同步数据的应用程序 . 出于测试目的,我需要在重新启动应用程序时清除一些SharedPreferences值 .
在一行中删除Android共享首选项:-)
context.getSharedPreferences("YOUR_PREFS", 0).edit().clear().commit();
或 apply 用于非阻塞异步操作:
apply
this.getSharedPreferences("YOUR_PREFS", 0).edit().clear().apply();
删除所有首选项:
SharedPreferences settings = context.getSharedPreferences("PreferencesName", Context.MODE_PRIVATE); settings.edit().clear().commit();
删除单个首选项:
SharedPreferences settings = context.getSharedPreferences("PreferencesName", Context.MODE_PRIVATE); settings.edit().remove("KeyName").commit();
如果不必每次都删除它,您可以从以下位置手动删除它:
设置 - >应用程序 - >管理应用程序 - >(选择您的应用程序) - >清除数据或卸载
较新版本的Android:
设置 - >应用程序 - >(选择您的应用程序) - >存储 - >清除数据和清除缓存
要删除特定值:SharedPreferences.Editor.remove()后跟 commit()
commit()
要删除所有 SharedPreferences.Editor.clear() 后跟 commit()
SharedPreferences.Editor.clear()
如果您不在应用程序的主线程中使用它,请考虑使用 apply() .
apply()
我的解决方案
SharedPreferences preferences = getSharedPreferences("Mypref", 0); preferences.edit().remove("text").commit();
似乎所有解决方案都没有完全正常工作或死亡
清除活动中的所有SharedPreferences
PreferenceManager.getDefaultSharedPreferences(getBaseContext()). edit().clear().apply();
在onCreate之后从主活动中调用此方法
注意*我用过
.apply()
代替
.commit()
你可以自由选择commit();
即使没有root电话,您也可以使用adb shell执行此操作 . 唯一的问题是app必须是可调试的 .
run-as <your package name> <command>
例如:
run-as com.asdf.blah rm /data/data/com.asdf.blah/databases/myDB.db
或者,您可以执行上述操作,但不使用将指导您到应用程序包根目录的命令,并允许您在应用程序的上下文中执行更多命令 .
Editor editor = getSharedPreferences("clear_cache", Context.MODE_PRIVATE).edit(); editor.clear(); editor.commit();
试试这段代码:
SharedPreferences sharedPreferences = getSharedPreferences("fake", Context.MODE_PRIVATE); SharedPreferences.Editor edit = sharedPreferences.edit(); edit.clear().commit();
在类定义中
private static final String PREFERENCES = "shared_prefs"; private static final SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(PREFERENCES, MODE_PRIVATE);
在课堂上
public static void deleteAllSharePrefs(){ sharedPreferences.edit().clear().commit(); }
清除所有:
PreferenceManager.getDefaultSharedPreferences(context).edit().clear().apply()
您也可以使用设备手动卸载应用 . 然后,当您重新安装应用程序时,共享首选项已重置 .
从API 24(Nougat)开始,你可以这样做:
context.deleteSharedPreferences("YOUR_PREFS");
但是,没有向后兼容性,所以如果你支持少于24的东西,坚持:
context.getSharedPreferences("YOUR_PREFS", Context.MODE_PRIVATE).edit().clear().apply();
SharedPreferences.Editor remove(String key) 后跟commit()或apply()
SharedPreferences.Editor clear() 后跟commit()或apply()
如果是你的测试 . 您可以使用adb命令 .
adb shell pm clear <package name>
要从任何类集中清除所有SharedPreferences:
public static SharedPreferences.Editor getEditor(Context context) { return getPreferences(context).edit(); }
然后从任何类:(提交返回布尔值,您可以检查您的首选项是否清除)
Navigation.getEditor(this).clear().commit();
或者:你可以使用Apply:它返回void Navigation.getEditor(this).clear() . apply();
要从首选项中删除键值对,您可以轻松执行以下操作
getActivity().getSharedPreference().editor().remove("key").apply();
我还开发了用于轻松操作共享首选项的库 . 您可以找到以下链接
https://github.com/farruhha/SimplePrefs
2018年更新:
你可以使用 PowerPreference
PowerPreference
要清除应用程序中所有共享首选项文件中的所有数据,请使用:
PowerPreference.clearAll()
清除默认文件
PowerPreference.defult().clear()
按名称清除特定文件
PowerPreference.name(fileName).clear()
https://github.com/AliEsaAssadi/Android-Power-Preference
您可以 use-> preferences.edit().remove("key").commit(); 从共享首选项中删除已保存的值 .
use-> preferences.edit().remove("key").commit();
刚刚今天早上这样做了 . 从命令提示符:
adb shell cd /data/data/YOUR_PACKAGE_NAME/shared_prefs rm * // to remove all shared preference files rm YOUR_PREFS_NAME.xml // to remove a specific shared preference file
NOTE :这需要一个有根设备,例如现有的Android虚拟设备,Genymotion设备或实际有根的手机/平板电脑等 .
20 回答
在一行中删除Android共享首选项:-)
或
apply
用于非阻塞异步操作:删除所有首选项:
删除单个首选项:
如果不必每次都删除它,您可以从以下位置手动删除它:
较新版本的Android:
要删除特定值:SharedPreferences.Editor.remove()后跟
commit()
要删除所有
SharedPreferences.Editor.clear()
后跟commit()
如果您不在应用程序的主线程中使用它,请考虑使用
apply()
.我的解决方案
似乎所有解决方案都没有完全正常工作或死亡
清除活动中的所有SharedPreferences
在onCreate之后从主活动中调用此方法
注意*我用过
代替
你可以自由选择commit();
即使没有root电话,您也可以使用adb shell执行此操作 . 唯一的问题是app必须是可调试的 .
例如:
或者,您可以执行上述操作,但不使用将指导您到应用程序包根目录的命令,并允许您在应用程序的上下文中执行更多命令 .
试试这段代码:
在类定义中
在课堂上
清除所有:
您也可以使用设备手动卸载应用 . 然后,当您重新安装应用程序时,共享首选项已重置 .
从API 24(Nougat)开始,你可以这样做:
但是,没有向后兼容性,所以如果你支持少于24的东西,坚持:
SharedPreferences.Editor remove(String key) 后跟commit()或apply()
SharedPreferences.Editor clear() 后跟commit()或apply()
如果是你的测试 . 您可以使用adb命令 .
要从任何类集中清除所有SharedPreferences:
然后从任何类:(提交返回布尔值,您可以检查您的首选项是否清除)
或者:你可以使用Apply:它返回void Navigation.getEditor(this).clear() . apply();
要从首选项中删除键值对,您可以轻松执行以下操作
我还开发了用于轻松操作共享首选项的库 . 您可以找到以下链接
https://github.com/farruhha/SimplePrefs
2018年更新:
你可以使用
PowerPreference
要清除应用程序中所有共享首选项文件中的所有数据,请使用:
清除默认文件
按名称清除特定文件
https://github.com/AliEsaAssadi/Android-Power-Preference
您可以
use-> preferences.edit().remove("key").commit();
从共享首选项中删除已保存的值 .刚刚今天早上这样做了 . 从命令提示符:
NOTE :这需要一个有根设备,例如现有的Android虚拟设备,Genymotion设备或实际有根的手机/平板电脑等 .