我有一个带有许多活动的Android应用程序,以及一些创建的特定首选项文件。当用户退出我的应用时,我想删除所有共享首选项。了解我不能使用context.getSharedPreferences("A_PREFS_FILE", 0).edit().clear().commit()
因为只能清除一个特定文件。我想清除与我的应用相关联的所有首选项文件。有没有办法做到这一点?
答案 0 :(得分:16)
通过这种方式,您可以删除所有文件。 通过clear()它将擦除数据文件仍然存在..
File sharedPreferenceFile = new File("/data/data/"+ getPackageName()+ "/shared_prefs/");
File[] listFiles = sharedPreferenceFile.listFiles();
for (File file : listFiles) {
file.delete();
}
这里它将返回所有文件列表,然后您可以轻松删除..
答案 1 :(得分:11)
只需输入以下代码,它对我来说非常完美......
getApplicationContext().getSharedPreferences("CREDENTIALS", 0).edit().clear().commit();
答案 2 :(得分:3)
首先,您必须clear
然后再拨打commit
试试吧:
SharedPreference.Editor pref = context.getSharedPreferences("A_PREFS_FILE", 0).edit();
pref.clear();
pref.commit();
我有一次怀疑,但我已经解决了这个问题。
可能有帮助;)谢谢...
答案 3 :(得分:1)
使用下面的代码行删除您的偏好..........
prefs.edit().remove("YOURTAG1").commit();
prefs.edit().remove("YOURTAG2").commit();
答案 4 :(得分:0)
为什么没有一个跟踪所有相关文件的SharedPreference;然后,在onPause或onStop中,将该值解析为SharedPreferences.Editor.clear()。commit(),然后删除最后一个?
答案 5 :(得分:0)
SharedPreferences目录路径: Environment.getDataDirectory()+“ / data /” + ActivateAccountActivity.this.getPackageName()+“ / shared_prefs”
使用“ 用于”循环删除所有文件,如下所示:
File sprefs_directory = new File(Environment.getDataDirectory() + "/data/" + context.getPackageName() + "/shared_prefs");
File[] files = filesirectory.listFiles();
for(File file : files) {
file.delete();
}