Вопрос

Я могу создать новый файл предпочтения, позвонив Context.getsharedPreferences (строковое имя, режим int), Установка некоторых ценностей в редакторе возвращенных предпочтений, а также совершать. Однако я не вижу интерфейс в API для удаления созданного файла, когда мне больше не нужен. я пробовал Context.deletefile (строковое имя), проходя в то же самое name аргумент сверху, но возвращается false, Указание файла на самом деле не удалилось. Я использую mode_private, если это имеет значение.

Просмотр источника для Реализация контекста редактора Не раскрывает никаких подсказок либо, насколько я могу сказать.

Любые идеи? Основная информация здесь заключается в том, что я позволяю своим пользователям сохранять копии своих «текущих» предпочтений, чтобы они могли восстановить ранее сохраненные настройки. Когда они больше не хотят эти настройки, я хочу удалить файл сохраненных предпочтений, чтобы он не занимал место. На данный момент лучшее, что я могу сделать, это edit().clear().commit В файле, который, я полагаю, удалит большую часть содержимого. Однако не так хорошо, как удалить.

Это было полезно?

Решение

Я пробовал контекст. Deletefile (String name), передавая тот же аргумент с того же имени из выше, но это возвращает false, указывая, что файл фактически не был удален.

Это потому, что файл не в этом каталоге.

Предпосылка здесь состоит в том, что я позволяю своим пользователям сохранять копии своих «текущих» предпочтений, чтобы они могли восстановить ранее сохраненные настройки.

Как вы делаете копию?

С точки зрения поддерживаемых API, вы лучше всего подавать, сделав настоящий SharedPreferences Будьте текущими активными настройками, сделайте резервное копирование и восстанавливает свой собственный формат файла в своем собственном каталоге.

Если вам не хватает, чтобы пойти в это направление, файл будет файл XML в ../shared_prefs каталог относительно getFilesDir(), таким образом, вы можете построить соответствующий объект файла и удалить его таким образом. Тем не менее, имейте в виду, что Android может, возможно, изменить это местоположение позже или даже изменить модель хранения, и поэтому вы можете столкнуться с проблемами совместимости в будущем.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top