2013-03-22 6 views
8

Immer wenn ich eine neue Version meiner App im Markt veröffentlichen, wenn der Benutzer die Option "Auto Update" aktiviert hatte, wird die App automatisch aktualisiert.Auto-Neustart App nach Markt Update

Die App enthält einen Dienst, der ständig ausgeführt wird. Aber wenn die automatische Aktualisierung stattfindet, wird die alte laufende App gelöscht, aber die neue wird nicht gestartet. Da das Update weitgehend transparent für den Benutzer erfolgt, ist es sinnvoll, dass der Dienst der App nach dem Update automatisch neu gestartet wird, damit der Dienst fast nicht unterbrochen wird.

Es ist ein bisschen schwierig, dies mit einem echten Update vom Markt zu testen, also verwende ich die folgenden zwei adb-Befehle, um diesen Update-Prozess zu simulieren. Installieren der ersten Version :

adb install oldversion.apk 

Automatisches Update:

adb install -r newversion.apk 

Nachdem ich den zweiten Befehl ausführen, wird die App erfolgreich aktualisiert, aber es wurde gestoppt und nicht wieder gestartet.

Wie können wir den Dienst der neuen Version automatisch starten lassen?

+1

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

Antwort

4

Es ist etwas, das Sie sorgfältig prüfen müssen, aber Sie sollten es fangen können, mit einem Rundfunkempfänger mit der Aktion Intent.ACTION_PACKAGED_REPLACED

Sie dann den Dienst aus dem Receiver starten.

+0

Ich versuche, aber nicht funktioniert ... Ich versuchte http://pastie.org/ 8223893 Kannst du einen Vorschlag machen ?? –

+0

Ich denke, mit ACTION_MY_PACKAGE_REPLACED wird besser sein? Da es nur an das zu aktualisierende Paket gesendet wird, werden nicht alle Pakete gesendet. – code2be

1

ein BroadcastReceiver-Intent.ACTION_PACKAGE_REPLACED

Registrieren und vergleichen EXTRA_UID mit Ihrem eigenen. Wenn es übereinstimmt, können Sie Ihren Dienst erneut starten.

7

Wenn Ihre App auf API 12 oder höher läuft, würde ich empfehlen, ein BroadcastReceiver-android.intent.action.MY_PACKAGE_REPLACED hören Registrierung.

Diese Absicht wird nur ausgelöst, wenn Ihre Anwendung aktualisiert wurde.

Verwandte Themen