2014-07-02 11 views
8

Von dem, was ich sehe, wenn Sie einen unbegrenzt wiederholenden Alarm planen, wird es nicht aufhören zu laufen, bis Sie Ihr Gerät neu starten oder die App deinstallieren.Laufen Android AlarmManager nach einem App-Update weiter?

Ich frage mich, wie verhalten sich diese im Falle eines Updates der App? Sie laden beispielsweise die Version 1 der App aus dem Play Store herunter und führen die App aus, und dieser Alarm wird gestartet. Dann wird Version zwei freigegeben und eine automatische oder manuelle Aktualisierung durchgeführt. Läuft dieser Alarm weiterhin (oder müssen Sie die App erneut starten, um den Alarm zu starten)?

In meinem Szenario brauche ich es, damit ich hoffe, dass die Antwort ist, dass es einfach weiterlaufen würde. Was passiert jedoch, wenn Sie den Alarmcode in Version 2 geändert haben?

Antwort

1

Tun Sie etwas wie this.

Im Wesentlichen, wenn Sie jedes Mal, wenn Ihre App startet, Ihren PendingIntent mit der gleichen ID ausführen, wird, wenn er ausgeführt wird, nichts passieren und wenn er nicht ausgeführt wird, wird er gestartet.

Auf diese Weise müssen Sie sich keine Gedanken darüber machen, Ihren Alarm nach einem Update zu verlieren.

8

Die Antwort scheint zu sein, dass die Alarme AlarmManager nach einem App-Update für die meisten Android-Versionen weiterhin ausgeführt werden. Sicher für Android 2.3.2 oder höher. Die UninstallReceiver in AlarmManagerService wurde aktualisiert Update-Paket zu behandeln, ohne die Alarme zu töten - here sehen, wo gibt es den expliziten Kommentar:

// Dieses Paket aktualisiert wird; töte seine Alarme nicht ab.

Der Code zu handhaben dies nicht in der ich diese 2.0.0 AlarmManagerService.UninstallReceiver

war klar wahrscheinlich der beste Teil von 3 Jahren kommt zu spät, den OP zu helfen, aber hoffentlich kann es anderen helfen.