Удалить файл именованных предпочтений в Android
-
29-09-2019 - |
Вопрос
Я могу создать новый файл предпочтения, позвонив Context.getsharedPreferences (строковое имя, режим int), Установка некоторых ценностей в редакторе возвращенных предпочтений, а также совершать. Однако я не вижу интерфейс в API для удаления созданного файла, когда мне больше не нужен. я пробовал Context.deletefile (строковое имя), проходя в то же самое name
аргумент сверху, но возвращается false
, Указание файла на самом деле не удалилось. Я использую mode_private, если это имеет значение.
Просмотр источника для Реализация контекста редактора Не раскрывает никаких подсказок либо, насколько я могу сказать.
Любые идеи? Основная информация здесь заключается в том, что я позволяю своим пользователям сохранять копии своих «текущих» предпочтений, чтобы они могли восстановить ранее сохраненные настройки. Когда они больше не хотят эти настройки, я хочу удалить файл сохраненных предпочтений, чтобы он не занимал место. На данный момент лучшее, что я могу сделать, это edit().clear().commit
В файле, который, я полагаю, удалит большую часть содержимого. Однако не так хорошо, как удалить.
Решение
Я пробовал контекст. Deletefile (String name), передавая тот же аргумент с того же имени из выше, но это возвращает false, указывая, что файл фактически не был удален.
Это потому, что файл не в этом каталоге.
Предпосылка здесь состоит в том, что я позволяю своим пользователям сохранять копии своих «текущих» предпочтений, чтобы они могли восстановить ранее сохраненные настройки.
Как вы делаете копию?
С точки зрения поддерживаемых API, вы лучше всего подавать, сделав настоящий SharedPreferences
Будьте текущими активными настройками, сделайте резервное копирование и восстанавливает свой собственный формат файла в своем собственном каталоге.
Если вам не хватает, чтобы пойти в это направление, файл будет файл XML в ../shared_prefs
каталог относительно getFilesDir()
, таким образом, вы можете построить соответствующий объект файла и удалить его таким образом. Тем не менее, имейте в виду, что Android может, возможно, изменить это местоположение позже или даже изменить модель хранения, и поэтому вы можете столкнуться с проблемами совместимости в будущем.