【问题标题】:Delete all sharedPreferences in Android [duplicate]删除Android中的所有sharedPreferences [重复]
【发布时间】:2015-06-14 01:57:39
【问题描述】:

是否可以在不知道文件名的情况下以编程方式删除 Android 应用程序的所有 sharedPreferences?我的意思是所有文件,而不是给定文件的所有键。

我正在为多个应用程序运行带有仪器的单元测试,我需要清除应用程序可能在 /data/data/app.package.name/shared_prefs 文件夹下创建的每个文件。

例如,应用可能会在 shared_prefs 下创建这些文件:

appname.xml
app.package.name_preferences.xml
app.package.name_tips.xml

而对于另一个应用程序,我可以拥有:

app.package.name_prefs.xml
app.package.name_foo.xml

注意:使用pm clear YOUR_APP_PACKAGE 应用程序会崩溃。

谢谢

【问题讨论】:

  • @codeMagic 为什么要重复?实际上,我问了一个与您链接的问题不同的问题
  • 接受的答案告诉您如何清除您要求做的首选项
  • 帖子已编辑。在这里我找到了我想要的东西:http://stackoverflow.com/a/9073473/4512309

标签: java android sharedpreferences instrumentation


【解决方案1】:

要删除您可以使用的应用程序的所有首选项:

SharedPreferences.Editor.clear()

之后你必须commit() 删除。

所以它看起来像完整的代码:

getSharedPreferences(PREFS, 0).edit().clear().commit() // change PREF to yours

【讨论】:

  • 这样做我需要指定PREFS,但我不知道文件名提前,我需要清除所有的偏好文件
  • 那你可以尝试使用getDefaultSharedPreferences(context):getDefaultSharedPreferences(getApplicationContext()).edit().clear().commit();
  • 只有 app.package.name_preferences.xml 被清除,其他 xml 文件仍然保持不变。
  • .xml?我以为您只是想删除所有已保存的共享首选项?现在我明白了,您编辑了您的问题...
  • 应用程序可能在/data/data/shared_prefs 中创建的每个文件,但我不知道文件名,我的代码将测试多个应用程序
猜你喜欢
  • 1970-01-01
  • 2011-04-16
  • 2016-11-25
  • 2012-11-19
  • 1970-01-01
  • 2013-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多