2013-03-22 10 views
8

Zawsze, gdy opublikuję nową wersję mojej aplikacji na rynku, jeśli użytkownik włączył opcję "automatycznej aktualizacji", aplikacja zostanie automatycznie zaktualizowana.Auto-restart aplikacji po aktualizacji rynku

Aplikacja zawiera usługę, która działa nieprzerwanie. Ale gdy nastąpi automatyczna aktualizacja, stara uruchomiona aplikacja zostanie zabita, ale nowa nie zostanie uruchomiona. Ponieważ aktualizacja przebiega w sposób przeźroczysty dla użytkownika, ma sens, aby usługa aplikacji ponownie uruchomiła się automatycznie po aktualizacji, aby prawie nie nastąpiło przerwanie usługi.

To jest trochę trudne do przetestowania z prawdziwą aktualizacją z rynku, więc używam następujących dwóch poleceń adb do symulacji tego procesu aktualizacji. Instalacji 1. wersji:

adb install oldversion.apk 

Automatyczna aktualizacja:

adb install -r newversion.apk 

Po uruchomieniu drugiego polecenia, aplikacja zostanie pomyślnie zaktualizowane, ale został zatrzymany i nie wznowiona.

Jak możemy uruchomić usługę nowej wersji automatycznie?

+1

http://stackoverflow.com/questions/10728016/android-restart-application-after-update-action-package-replaced – Alexis

Odpowiedz

4

To coś trzeba będzie dokładnie przetestować, ale powinieneś być w stanie go złapać z odbiornikiem transmisji z działaniem Intent.ACTION_PACKAGED_REPLACED

Następnie należy uruchomić usługę z odbiornika.

+0

Próbuję, ale nie działa ... Próbowałem http://pastie.org/ 8223893 Czy możesz podać sugestię? –

+0

Myślę, że użycie ACTION_MY_PACKAGE_REPLACED będzie lepsze? Ponieważ jest właśnie wysyłany do aktualizowanego pakietu, nie wszystkie pakiety. – code2be

1

zarejestrować BroadcastReceiver do Intent.ACTION_PACKAGE_REPLACED

Następnie porównać EXTRA_UID z własną rękę. Jeśli pasuje, możesz ponownie uruchomić usługę.

7

Jeśli Twoja aplikacja działa pod numerem API 12 lub nowszym, polecam rejestrację BroadcastReceiver odsłuchiwania na android.intent.action.MY_PACKAGE_REPLACED.

Ta intencja pojawia się tylko wtedy, gdy aplikacja otrzymała aktualizację.

Powiązane problemy