用户退出时删除我的应用的所有sharedPreferences

时间:2013-08-21 04:12:51

标签: android sharedpreferences

我有一个带有许多活动的Android应用程序,以及一些创建的特定首选项文件。当用户退出我的应用时,我想删除所有共享首选项。了解我不能使用context.getSharedPreferences("A_PREFS_FILE", 0).edit().clear().commit()因为只能清除一个特定文件。我想清除与我的应用相关联的所有首选项文件。有没有办法做到这一点?

6 个答案:

答案 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();
}