2012-08-23 21 views
2

在我的应用程序中,偏好由SharedPreferences组织。我需要重置为应用程序默认值。Android:将应用程序使用的所有SharedPreferences重置为默认值

我知道如何重置所有值特​​别SharedPreferences

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

SharedPreferences.Editor editor = prefs.edit(); 

editor.clear(); 
editor.commit(); 

但问题是,只为一个特定的偏好“name_of_the_preferences_file”喜好被重置。当然,所有其他的偏好不受影响。

那么,如何实现完全失效复位?

这将是很好的获取所有首选项文件的名称,逐一重置它。

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

+0

我相信您会在这里找到答案:http:/ /stackoverflow.com/questions/3687315/deleting-shared-preferences –

+0

谢谢,但只有我在我的问题中提到的解决方案,但要删除所有需要有根访问权限的设置,不是吗?很不幸,我在那里找不到答案。 –

回答

0

原来的答复:见Deleting shared preferences

编辑:你说:“我需要进行重置为默认应用程序。”并且该链接提供了解决方案:您没有提及重置所有应用的所有首选项。 您无法从您自己的应用程序中清除其他应用程序的首选项,因为sharedpreferences存储在文件中,并且您的应用程序不会拥有包含这些文件的目录的写权限

+1

当然,我不想重置所有应用程序的首选项。这将是非常不好的愿望。每个应用程序可以有几个prefs文件(在我的例子中,pref文件名是“name_of_the_preferences_file”)。我想为我的应用程序获取这些文件的所有名称。 (然后我将能够重置每个文件中的设置) –

+0

您必须迭代每个共享的pref并调用clear()没有其他方式 –

+1

但是,如何获得我应用程序创建的所有首选项的列表? –

相关问题