Как обновить данные общих предпочтений, когда пользователь обновляет приложение? - PullRequest
0 голосов
/ 07 сентября 2018

Мне просто интересно, что, если предположить, что я что-то храню в приложении для Android, например - в общих настройках, и предположить, что текущая версия приложения n, а в обновленной версии (n + 1), я изменил тип данных своего общего предпочтения. объект от List<String> до List<Object>, и в следующей обновленной версии, которая (n+2), я обновил тип данных объекта до List<Double> теперь, когда пользователь пойдет в магазин, обновит свое приложение, затем предыдущий данные будут там, поэтому мне придется самому написать некоторый код, чтобы, если предыдущая версия была n, а текущая версия была, например, - (n+2), теперь я соответственно изменил значение в общем преференции в коде, написав if-else чтобы проверить, что является более старой версией.

Выше подхода, который используют разработчики при обновлении любого приложения для Android в PlayStore?

Также есть ли возможность, например, что пользователь имеет (n+2) версию моего приложения, установленную в настоящее время, и теперь пользователь хочет загрузить любую более старую версию моего приложения, например, версию n, теперь Есть ли возможность, что пользователь сможет установить приложение этой версии n, а также восстановить данные для версии (n+2), потому что если это произойдет, то, как в моем коде n, не будет if-else, чтобы изменить тип данных объекта с List<double> до List<String>?

Я новичок, никогда не ставил никаких приложений в PlayStore, но собираюсь, поэтому спрашиваю.

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018
  1. Не беспокойтесь о сценарии понижения рейтинга, поскольку Google Play его не поддерживает. И даже если пользователь вручную пытается понизить версию (т. Е. Вы предоставляете пользователю .apk напрямую), общие настройки все равно будут удалены.

  2. Не существует логики миграции для общих предпочтений, как, например, для баз данных. Так что это должно быть сделано вручную.

  3. Мое предложение состоит в том, чтобы использовать другой ключ вместо if else. Делайте это всегда, так как я предпочитаю содержать мой код в чистоте, а не в файле общих настроек.

0 голосов
/ 07 сентября 2018

Если я полностью изменяю тип объекта, который принадлежит определенному ключу предпочтения, и я собираюсь опубликовать его в рабочей среде, я просто изменю ключ, который использую, чтобы избежать хлопот его обновления условно. Это действительно не то, что должно случиться вообще все же. Если вы радикально меняете вещи, пользователи не будут счастливы, если вы справитесь с этим.

Чтобы ответить на второй вопрос, вы не можете понизить версию приложений Android, т. Е. Перейти с версии 3 на версию 2 напрямую. Единственный способ сделать это - сначала удалить текущую версию, тем самым очистив все SharedPreferences, и установить старую версию. Если вы используете функцию резервного копирования, предоставляемую Google, настройки могут быть восстановлены, что возвращает меня к моему первому пункту: если вы собираетесь изменить его так сильно, просто измените ключ, который вы используете.

(Google Play не позволяет пользователям переходить на более раннюю версию по той причине, что я описал. Она будет обслуживать пользователей последней версией, совместимой с их устройством.)

...