Что произойдет с SharedPreferences при обновлении приложения для Android?



Я сохранил настройки пользователя в SharedPreferences в моем приложении. Что произойдет с SharedPreferences, когда я обновлю приложение через Google Play Store до новой версии приложения?



будут ли SharedPrefernces по-прежнему там после обновления или они будут удалены?



до сих пор я не нашел ответа в интернете или Stackoverflow (могу ли я искать с неправильными ключевыми словами?).



можете ли вы указать мне на некоторые ссылки, которые они описывают это процесс?



Edit:
Между тем я нашел и другой ответ: SharedPreferences поведение при обновлении/удалении



Edit 2:
С тех пор прошло совсем немного, когда я впервые задал этот вопрос, я недавно узнал, что с Android 6.0 (API 23) также можно использовать функцию автоматического резервного копирования для безопасное ваши общие предпочтения, как описано Google здесь. Просто добавьте allowBackup="true" в своем AndroidManifest.xml файл.

693   3  

3 ответов:

Кристиан здесь говорит: ваши данные приложения будут оставаться, когда пользователь устанавливает обновления.

но это должно быть с тем же package name для обнаружения в качестве обновления предыдущего приложения.

EboMike в предупреждение пользователей Android, что обновление приложения может привести к потере данных из старой версии приложения? говорит:

откровенно говоря, потери данных из-за обновления неприемлемый.

Edit:

обычно, SharedPreferences(а также другие пользовательские данные) будут сохранены во время процесса обновления, но иногда, из-за некоторых "неизвестный

Я думаю, что когда я обновил свое приложение в последний раз через Google Play, sharedPreferences не были затронуты.
Я использовал их для автоматического входа в систему, и после обновления он сделал это.
Это было месяц назад, моя память могла стать нечеткой, поэтому лучше услышать мнения других людей тоже.

после отладки в течение 4 часов я узнал, что я сохранил модель как строку сериализации. Сериализуемый класс имеет уникальный идентификатор по фамилии serialVersionUID, который устанавливается по умолчанию во время выполнения и идентификатор вычисляется по имени класса, интерфейсов и имен переменных, а также. Я узнал, что я изменил класс модели, добавил переменную, а затем обновил приложение. Так как класс теперь и новый serialVersionUID был установлен и, следовательно, на обновление , он не смог десериализовать строку и создать модель и давал java.io. InvalidClassException

явно установите serialVersionUID, чтобы избежать этой проблемы

static final long serialVersionUID = 42L;

Comments

    Ничего не найдено.