Крістіан тут каже: Ваші дані Програми залишаться, коли користувач встановлюватиме оновлення.
Але воно має бути з тим самим, 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.
Захист від копіювання ринку повністю порушує доступ до файлів після оновлення.
Хтось може пояснити процес оновлення програми?