Как запретить на android удалять/очищать телефону/пользователю базу данных?
У меня в приложении есть база данных sqlite.
Пользователь может зайти в настройки своего телефона->приложения->моё приложение И там можно очистить кэш, это не страшно, но можно и отчистить данные приложения, в том числе и базу данных. Как сделать так, чтобы при очистке не удалялась база данных?
Ответы (2 шт):
Подробный ответ находится тут. Спасибо @tym32167.
Стоит отметить, что в Android существует три типа очистки данных, над которыми ваше приложение не имеет контроля:
- Очистить данные
- Очистить кеш
- Очистить настройки по умолчанию
'Очистить данные' очистит все в рабочем каталоге приложения. Это включает в себя любые общие настройки, базы данных и файлы, сохраненные приложением, которые находятся в каталоге приложения. Это также очистит кэш приложения.
Очистить кэш. У приложения есть доступ к каталогу кеша, в который можно сохранять файлы, в основном для целей кэширования, таких как сгенерированные изображения или временные файлы.
Из этого следует, что единственная возможность сохранить данные, это делать бэкап вне приложения.
Android предоставляет autobackup данных объёмом до 25М бесплатно на каждое прилажение.
Autobackup для базы данных sqlite включен автоматически.
Бэкап будет происходить в следующих случаяx:
- Пользователь включил резервное копирование на устройстве. В Android 9 этот параметр находится в разделе «Настройки» > «Система» > «Резервное копирование» .
- С момента последнего резервного копирования прошло не менее 24 часов.
- Устройство не используется.
- Устройство подключено к сети Wi-Fi (если пользователь устройства не включил резервное копирование мобильных данных).
Подробнее можно посмотреть на официальном сайте.