Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:将应用程序使用的所有SharedReference重置为默认值_Android_Preferences_Reset - Fatal编程技术网

Android:将应用程序使用的所有SharedReference重置为默认值

Android:将应用程序使用的所有SharedReference重置为默认值,android,preferences,reset,Android,Preferences,Reset,在我的应用程序中,首选项由SharedReferences组织。我需要执行重置为应用程序默认值 我知道如何重置特定共享引用的所有值: SharedPreferences prefs = getSharedPreferences( "name_of_the_preferences_file", MODE_PRIVATE ); SharedPreferences.Editor editor = prefs.edit(); editor.clear(); edi

在我的应用程序中,首选项由
SharedReferences
组织。我需要执行重置为应用程序默认值

我知道如何重置特定
共享引用的所有值

SharedPreferences prefs = getSharedPreferences(
      "name_of_the_preferences_file",
      MODE_PRIVATE
      );

SharedPreferences.Editor editor = prefs.edit();

editor.clear();
editor.commit();
但问题是,只有一个特定首选项的首选项“首选项文件的名称”被重置。当然,所有rest首选项都不会受到影响

那么,如何实现完全去油复位呢

最好得到所有首选项文件的名称,然后逐个重置

但理想情况下,我希望以编程方式销毁所有应用程序数据。这可能是最好的变体。

原始答案:请参阅

编辑:您声明“我需要执行重置为应用程序默认值”。该链接提供了解决方案:您没有提到重置所有应用程序的所有首选项。
您无法从自己的应用程序中删除其他应用程序的首选项,因为SharedReference存储在一个文件中,并且您的应用程序对包含这些文件的目录没有写入权限

我相信您会在这里找到答案:谢谢,但只有与我在问题中所述相同的解决方案,但是要删除所有需要root访问权限的设置,不是吗?所以很遗憾,我在那里找不到答案。当然,我不想为所有应用重置prefs。这将是非常糟糕的愿望。每个应用程序都可以有几个prefs文件(在我的示例中,pref文件名是“首选项文件的名称”)。我想为我的应用程序获取这些文件的所有名称。(然后我将能够重置每个文件中的设置)你必须迭代每个共享的pref&调用clear()没有其他方法,但我如何才能获得我的应用程序创建的所有pref的列表?哦,这是你的问题?为什么不使用一个SharedRef呢。而不是有Pref1,Pref2,Pref3等。。。有了一堆钥匙,你就只有一个pref和jeys Pref1.*,Pref2.*如果无法获取列表,那么我可能不得不这样做,谢谢。但这似乎很糟糕,我无法获得包含所有文件名的列表。。