2009-12-08 20 views
7

Dank TasKiller habe ich zuverlässige Möglichkeit zum Herunterfahren Updates zu meinem AppWidget aus der AlarmManager kommen!Android - AlarmManager Wiederherstellung

Nun, Sarkasmus beiseite, wie erhole ich mich von einem solchen Ereignis? Bis jetzt sehe ich nur, dass die Alerts erst nach dem Neustart des Telefons wieder auferstehen.

Ich kann Recovery-Code in wenigen Orten wie verschiedene Activity#onCreate, die zu meiner App und meinem Widget gehören, aber gibt es einen besseren Weg?

Auch was ist, wenn die Warnungen in Ordnung sind - gibt es eine Möglichkeit, dies zu erkennen und nicht AlarmManager#setRepeating ausführen?

Oder ist es schaden, es mehrmals auszuführen?

Antwort

5

Nun, Sarkasmus beiseite, wie kann ich von einem solchen Ereignis wiederherstellen?

Ich habe gehört, dass Single-Malt Scotch hilft.

Bisher ist nur ich sehe, dass die Warnungen auferstandenen sind erst nach dem Telefon neu zu starten.

, dass nur, wenn Sie die BOOT_COMPLETED Sendung Intent und zur Wiedereinführung der Alarme Einhaken.

Task Killer sind bemerkenswert gründlich, aber sie können nicht stoppen BroadcastReceiver von System-Broadcasts empfangen, wie BOOT_COMPLETED. Sie sind willkommen, eine andere Sendung zu finden, die Sie erhalten möchten, um die Kontrolle wiederzuerlangen und Ihre Alarme wiederherzustellen.

auch was, wenn die Warnungen in Ordnung sind - ist es eine Möglichkeit, das zu erkennen und nicht Alarmmanager # setRepeating laufen? Oder gibt es ein Schaden, es mehrmals auszuführen?

Sie können cancel() einen vorhandenen Alarm. Also, wenn Sie über mögliche Duplikate besorgt sind, cancel() der aktuelle Alarm (der hoffentlich ausfällt, wenn der Alarm nicht existiert), dann stellen Sie den Alarm ein.

+2

Nun müssen Sie nicht einmal "abbrechen" - wenn Sie den Zeitplan für die gleiche ausstehende Absicht aufrufen, wird Ihr Zeitplan automatisch zurückgesetzt. Danke für Ihre Hilfe Mark, sehr geschätzt – Bostone