Ответ 1
Cristian здесь говорит: ваши данные приложения будут оставаться, когда пользователь будет устанавливать обновления.
Но он должен быть с тем же package name
для обнаружения в качестве обновления предыдущего приложения.
EboMike в Предупреждение Пользователь Android, что обновление приложения может привести к потере данных из старой версии приложения? говорит:
Совершенно откровенно, потеря данных из-за обновления неприемлема.
Edit
Обычно, SharedPreferences (а также другие пользовательские данные) будут сохраняться в процессе обновления, но иногда из-за некоторой "неизвестной" проблемы данные могут потеряться, и я думаю это не под вашим контролем. Итак, вы можете просто поверить, что SharedPreferences будут сохранены (см. Здесь).
Итак, если вы хотите избежать очистки пользовательских данных при обновлении, вам необходимо сохранить основные данные во внешнем хранилище (это могут быть съемные носители данных, такие как SD-карта или внутреннее несъемное хранилище.), а не приватно для вашего App.Or, по крайней мере, убрать для пользователя резервные копии данных перед обновлением. Затем при первом запуске вашего (обновленного) приложения проверьте, есть ли файл резервной копии во внешнем хранилище или нет.
Если вам нравится знать Что нужно/может произойти при обновлении приложения?, для этого не было хорошего описания. Это сложный и относительный с Android Security
, Application signing
, copy protection
и другие темы. Я имею в виду, что если вы измените состояние своего приложения в любых вышеприведенных полях, это приведет к другому результату.
Например, если вы CHANGED COPY PROTECTION FROM ON to OFF OR OFF to ON
, ваше приложение будет обновлено, но все ваши общие настройки потеряются, доступ к файлам будет невозможным и....
Вы, хотя и должны заботиться об условиях, вызывают новое приложение being considered
как обновление для предыдущего приложения (см. Вещи, которые не могут измениться).
Также вы должны заботиться о своем коде, это может быть связано с удалением данных ваших баз данных (см. обновление приложения с предустановленным SQLite).
Но в конечном счете, если будьте осторожны, вы можете сказать:
Процесс обновления заменяет только файл apk (и, следовательно, что находится в нем для примеры drawables,...) и не изменяет базы данных, sharedpreferences и любые другие файлы, созданные во время выполнения (возможно, в этом case, новое приложение установлено с UID, равным UID предыдущее приложение).
Вы можете увидеть эти страницы для более подробной информации:
Справка!? Обновление нашего приложения на рынке удаляет сохраненные SharedPreferences.
Защита от копирования на рынке полностью прерывает доступ к файлам после обновления
Может ли кто-нибудь объяснить процесс обновления приложения?