2012-08-23 63 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

但是,如何獲得我應用程序創建的所有首選項的列表? –

相關問題