2015-06-12 3 views
0

Можно ли программно удалить все sharedPreferences приложения для Android, не зная имена файлов? Я имею в виду все файлы, а не все ключи данного файла.Удалить все sharedPreferences в Android

Я запускаю модульные тесты с инструментами для нескольких приложений, и мне нужно очистить каждый файл, который может создать приложение под папкой /data/data/app.package.name/shared_prefs.

Например приложение может создавать эти файлы в shared_prefs:

appname.xml 
app.package.name_preferences.xml 
app.package.name_tips.xml 

в то время как для другого приложения я мог бы иметь:

app.package.name_prefs.xml 
app.package.name_foo.xml 

Примечание: Использование pm clear YOUR_APP_PACKAGE сбои приложения.

Благодаря

+0

@codeMagic почему дублировать? На самом деле, я задал другой вопрос из того, с которым вы связались. – mcns7

+0

В принятом ответе вам рассказывается, как очистить настройки, которые вы просите сделать – codeMagic

+0

после редактирования. Здесь я нашел то, что искал: [http://stackoverflow.com/a/9073473/4512309](http://stackoverflow.com/a/9073473/4512309) – mcns7

ответ

1

Чтобы удалить все префы приложения, которое вы можете использовать:

SharedPreferences.Editor.clear() 

После этого вы должны commit() удаление.

Так это будет выглядеть в полный код:

getSharedPreferences(PREFS, 0).edit().clear().commit() // change PREF to yours 
+0

Делая это, мне нужно указать PREFS, но я не знаю имя файла заранее, мне нужно очистить все файлы предпочтений – mcns7

+0

Затем вы можете попробовать использовать 'getDefaultSharedPreferences (context)': 'getDefaultSharedPreferences (getApplicationContext()). edit(). clear(). commit() ; ' – mrtn

+0

Только' app.package.name_preferences.xml' очищается, другие файлы xml по-прежнему остаются нетронутыми. – mcns7