Как сохранить данные, которые остались после удаления

Я хочу сохранить некоторые данные, которые должны остаться и после удаления приложения и быть доступными для новой версии этого приложения. Общие настройки/файлы не являются решением, так как они удаляются при удалении программы, а также запись во внутреннюю память не является решением (также удаляется при удалении). Я вижу, что запись во внешние общедоступные папки не удаляется, но для этого потребуется внешняя SD-карта, и я не хочу ограничиваться этим. Я не знаю об использовании базы данных SQLite, как это работает? Это может быть решением того, что я хочу? Или любые другие решения будут оценены.


person Alex    schedule 26.10.2010    source источник
comment
Дадите ли вы пользователю возможность не сохранять эти данные? Возможно, они намерены удалить навсегда.   -  person Nathan Long    schedule 26.10.2010
comment
Потому что на самом деле хочется реализовать пробный режим для приложения :) Без использования какого-либо веб-сервера, подключения к Интернету и т. д. ... просто локально   -  person Alex    schedule 26.10.2010
comment
Вы не должны делать это с устройствами пользователя, в результате SD-карта является единственным вариантом - в немалой степени, чтобы пользователь мог использовать какое-либо другое приложение для удаления того, что вы хотите оставить позади.   -  person Chris Stratton    schedule 26.10.2010
comment
Отвечает ли это на ваш вопрос? Сохранение данных Android после удаления   -  person Ryan M    schedule 29.08.2020


Ответы (3)


Базы данных, созданные вашим приложением, будут храниться в /data/data/your.package.name/databases/ и будут удалены при удалении приложения.

Значит, это не решение. Я думаю, что единственный способ будет использовать SD-карту.

person msal    schedule 26.10.2010

Похоже, вы правильно поняли. Запись на SD-карту — единственный действительно постоянный способ хранения данных.

редактировать: резервное копирование данных также может иметь смысл, но не не верьте мне на слово ;).

person torkildr    schedule 26.10.2010
comment
Спасибо, проверил резервное копирование данных, но это не помогает, так как его цель другая. - person Alex; 26.10.2010

Используйте SharedPreference или с помощью SQLitedatabase 1) создайте временную таблицу (с той же структурой, что и исходная) и скопируйте данные из исходной таблицы в эту новую 2) удалите исходную таблицу 3) создайте новую исходную таблицу (т.е. с большим количеством столбцов, с другие имена столбцов и т. д.) 4) скопируйте данные обратно из временной таблицы в эту новую исходную 5) удалите временную таблицу

person nantha    schedule 26.12.2011
comment
Это никоим образом не поможет решить проблему, поставленную вопросом. Обзор ответов, опубликованных за год до вашего, показал бы, что цель на самом деле недостижима. - person Chris Stratton; 12.12.2015