Крістіан тут каже: Ваші дані Програми залишаться, коли користувач встановлюватиме оновлення.
Але воно має бути з тим самим, package nameщоб виявити оновлення попереднього додатка.
EboMike в Попередження користувача Android, що оновлення програми може призвести до втрати даних зі старої версії програми? каже:
Чесно кажучи, втрата даних через оновлення неприпустима.
Редагувати :
Зазвичай SharedPreferences (а також інші користувацькі дані) зберігатимуться під час процесу оновлення, але іноді через якусь " невідому " проблему дані можуть загубитися, і, я думаю, це виходить з-під вашого контролю. Отже, ви можете просто повірити, що SharedPreferences будуть збережені ( див. Тут ).
Отже, якщо ви хочете уникнути очищення даних користувача під час оновлення, вам доведеться зберігати основні дані у зовнішньому сховищі (це може бути знімний носій інформації, такий як SD-карта або внутрішнє, незнімне сховище.), А не приватний для вашої програми. Або принаймні приберіть користувачеві резервне копіювання даних перед оновленням. Потім під час першого запуску вашого (оновленого) додатка перевірте, чи є файл резервної копії у зовнішньому сховищі чи ні.
Якщо ви хочете знати, які речі повинні / можуть статися при оновленні програми? Я не зробив будь-який опис добре для this.It ускладнюється і відносної з Android Security, Application signing, copy protectionта інші topics.I означає , що якщо ви зміните стан вашого застосування в будь-яких зазначених вище областях, це викликає інший результат.
Наприклад, якщо ви CHANGED COPY PROTECTION FROM ON to OFF OR OFF to ON, ваш додаток буде оновлено, але всі ваші спільні налаштування загубляться, доступ до файлів буде неможливим і ....
Хоча ви повинні бути обережними щодо умов, щоб ваш новий додаток being consideredбув оновленням для попереднього додатка (див. Речі, які неможливо змінити )
Також ви повинні бути обережними щодо свого коду, це може спричинити видалення даних з ваших баз даних (див. Додаток для оновлення з попередньо завантаженим SQLite ).
Але, зрештою, якщо будьте обережні, ви можете сказати:
Процес оновлення лише замінює файл apk (і тому, що в ньому знаходиться, наприклад, малюнки, ...), і не змінює бази даних, спільні налаштування та будь-які інші файли, створені під час роботи (можливо, у цьому випадку нова програма встановлюється за допомогою UID, який дорівнює UID попередньої програми).
Ви можете переглянути ці сторінки для отримання додаткової інформації:
Допоможіть !? Оновлення нашої програми на ринку видаляє збережені SharedPreferences.
Захист від копіювання ринку повністю порушує доступ до файлів після оновлення.
Хтось може пояснити процес оновлення програми?