android-删除用户沙箱中共享的\u Prefs文件夹的全部内容

android-删除用户沙箱中共享的\u Prefs文件夹的全部内容,android,sharedpreferences,Android,Sharedpreferences,如何清除用户沙盒中的整个共享首选项文件夹,而不仅仅是默认设置。共享_pref文件夹位于此处,通常来自adb shell: /data/data/yourappsPackage/shared_prefs 因此,我创建了许多不同的共享prefs xml文件 例如,我这样创建它们: context.getSharedPreferences("pref_file1",Context.MODE_PRIVATE); context.getSharedPreferences("pref_file2",Con

如何清除用户沙盒中的整个共享首选项文件夹,而不仅仅是默认设置。共享_pref文件夹位于此处,通常来自adb shell:

/data/data/yourappsPackage/shared_prefs
因此,我创建了许多不同的共享prefs xml文件

例如,我这样创建它们:

context.getSharedPreferences("pref_file1",Context.MODE_PRIVATE);
context.getSharedPreferences("pref_file2",Context.MODE_PRIVATE);
context.getSharedPreferences("pref_file3",Context.MODE_PRIVATE);
现在我想用一个命令把它们全部清除?这就是我迄今为止所尝试的:
SharedReferences.editor.clear()但这不只是清除我当前使用的文件吗

我试过:

preference=context.getSharedPreferences("pref_file1",Context.MODE_PRIVATE);
        preferences.edit().clear().commit();

pref_文件1被清除,但我需要pref_文件2和pref_文件3也被清除。

SharedPrefere是文件,所以要像文件一样操作。通过下面的函数删除它们

void delSharedPref(){

File list = new File("/data/data/" + getPackageName() +  "/shared_prefs");
        File[] files = list.listFiles();
        for(int i = 0; i < files.length; i++ ){
            files[i].delete();
        }

}

实际上,
clear()
会将它们全部删除。
remove()。我想删除所有文件。无需通过特定的SharedReference执行此操作。获取应用程序引用的共享首选项
SharedReferences prefs=PreferenceManager.GetDefaultSharedReferences(getApplicationContext())
然后你可以在这个级别调用clear来清除你的首选项。Jay,我在nexus 4 api 19上尝试了你的解决方案,但它没有清除shared_pref中的所有文件。它只清除默认文件。你真的试过吗?谢谢我是这么想的。这可能是唯一的答案,但我会等几个小时,看看是否有其他人能找到一个线路更少的解决方案。谢谢
File s = new File("/data/data/" + getPackageName() +  "/shared_prefs");
s.delete();
s.mkdir();