App nach Marktaktualisierung automatisch neustarten

8

Jedes Mal, wenn ich eine neue Version meiner App im Market veröffentliche, wenn die Option "automatische Aktualisierung" aktiviert wurde, wird die App automatisch aktualisiert.

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 größtenteils 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. Installation der 1. Version:

%Vor%

Automatische Aktualisierung:

%Vor%

Nachdem ich den zweiten Befehl ausgeführt habe, wird die App erfolgreich aktualisiert, aber sie wurde gestoppt und nicht neu gestartet.

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

    
muslidrikk 22.03.2013, 13:58
quelle

3 Antworten

4

Es ist etwas, das Sie sorgfältig testen müssen, aber Sie sollten es mit einem Broadcast-Empfänger mit der Aktion Absicht.ACTION_PACKAGED_REPLACED

Dann starten Sie den Dienst von Ihrem Empfänger.

    
Budius 22.03.2013, 14:13
quelle
7

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

Diese Absicht wird nur ausgelöst, wenn Ihre Anwendung ein Update erhalten hat.

    
janwo 18.06.2014 15:57
quelle
1

Registrieren Sie ein BroadcastReceiver auf Intent.ACTION_PACKAGE_REPLACED

Vergleichen Sie dann EXTRA_UID mit Ihrem eigenen. Wenn es übereinstimmt, können Sie Ihren Dienst erneut starten.

    
njzk2 22.03.2013 14:16
quelle