2015-12-08 3 views
0

Как удалить всю папку общих настроек в песочнице для пользователей, а не только по умолчанию. Папка shared_pref находится здесь, как правило, от ADB оболочки:android - удалить все содержимое папки Shared_Prefs в песочнице пользователя

/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); 

Теперь я хотел бы, чтобы очистить их все с помощью одной команды? Это то, что я пробовал до сих пор: sharedPreferences.editor.clear() ;, но разве это не очищает только тот файл, который им в настоящее время используется?

Я пробовал:

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

и pref_file1 очищается, но мне нужно pref_file2 и pref_file3, чтобы очистили также.

+0

На самом деле 'ясно()' удалит их все. Команда 'remove()' предназначена для определенных настроек. –

+0

no, i jus попробовал и удалил все файлы. Я хочу удалить ВСЕ файлы. – j2emanue

+0

Не нужно делать это с помощью определенной sharedPreference. Соблюдайте общие настройки, на которые ссылается ваше приложение. 'SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences (getApplicationContext());' Тогда вы можете вывести на экран свои предпочтения на этом уровне. –

ответ

2

SharedPreferece - файл, поэтому ведите себя как файл. Удалить их ниже функции

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(); 
     } 

} 

Или

Если вы ищете о менее использования кода строки ниже кода

File s = new File("/data/data/" + getPackageName() + "/shared_prefs"); 
s.delete(); 
s.mkdir(); 
+0

Спасибо, я думал об этом. это может быть единственным ответом, но я подожду несколько часов и посмотрю, будет ли кто-нибудь еще с меньшим количеством строк. Благодарю. – j2emanue

+0

Я обновил ответ – Ali

Смежные вопросы