Cristian here mówi: dane aplikacji pozostaną, gdy użytkownik zainstaluje aktualizacje.
Ale musi być z tym samym package name
wykryć jako aktualizację poprzedniej aplikacji.
EboMike w Warning Android user that app update could lead to losing data from old app version? mówi:
Szczerze mówiąc, utraty danych z powodu modernizacji jest niedopuszczalne.
Edit:
Normalnie, że SharedPreferences (jak również inne dane użytkownika) zostaną utrzymane podczas procesu aktualizacji, ale czasami, z powodu jakiegoś "nieznanego" problemu, dane mogą się zagubić i myślę, że jest to poza kontrolą. Możesz więc po prostu uwierzyć, że SharedPreferences będą przechowywane (see here).
Jeśli chcesz uniknąć usuwania danych użytkownika podczas aktualizacji, musisz zapisać główne dane w pamięci zewnętrznej (może to być wymienny nośnik pamięci, na przykład karta SD lub wewnętrzne, nieusuwane miejsce .) i nie prywatne dla twojej App.Or przynajmniej odłożyć dla użytkownika do tworzenia kopii zapasowych danych przed aktualizacją. Następnie w pierwszym uruchomieniu twojej (uaktualnionej) aplikacji, sprawdź, czy jest jakiś plik kopii zapasowej w pamięci zewnętrznej lub nie.
Jeśli chcesz wiedzieć, Co musi/może się stać podczas aktualizacji aplikacji?, Nie opisałem tego dobrze.Jest to skomplikowane i względne z Android Security
, Application signing
, copy protection
i innymi tematami. Mam na myśli to, że jeśli zmienisz stan swojej aplikacji w dowolnych powyższych polach, spowoduje to inny wynik.
Na przykład, jeśli masz CHANGED COPY PROTECTION FROM ON to OFF OR OFF to ON
, Twoja aplikacja zostanie zaktualizowana, ale spowoduje utratę wszystkich udostępnionych preferencji, dostęp do pliku będzie niemożliwy i ....
Mimo że musisz zachować ostrożność, warunki powodują, że nowa aplikacja being considered
jest aktualizacją poprzedniej aplikacji (patrz Things That Cannot Change).
Należy również zachować ostrożność w odniesieniu do kodu, może to spowodować usunięcie danych z baz danych (patrz update app with preloaded SQLite).
Ale ostatecznie, jeśli uważać, można powiedzieć:
Proces aktualizacji zastępuje tylko plik apk (a więc to, co w niej jest dla przykład kanału alfa, ...) i nie modyfikować bazy danych, sharedpreferences i inne pliki wygenerowane w czasie wykonywania (prawdopodobnie w tym przypadku , nowa aplikacja jest instalowana z UID równym UID z poprzedniej aplikacji).
Można zobaczyć te strony po więcej szczegółów:
Help!? Updating our applicatoin on the market deletes the saved SharedPreferences.
Market copy protection totally breaks file access after updating
Can someone explain the App update process?
Dziękuję, wydaje mi się, że SharedPreferences POWINNO być utrzymywane w porządku. Ale czy nie ma oficjalnego opisu tego procesu? –
@viperbone, które przetwarzają? Clareing sharedpreferences? Lub aktualizowanie aplikacji? – hasanghaforian
Uaktualnianie procesu aplikacji. Co musi/może się stać podczas aktualizacji aplikacji. –