Ich mache eine Alarm-App für Android. Sobald der Benutzer einen Alarm geplant hat, zählt ein Thread, bis der Alarm erreicht ist, und dann ertönt ein Alarmton.Android: Halten Sie einen Thread laufen, auch wenn das Gerät gesperrt ist
Der Zähl-Thread stoppt jedoch, wenn das Gerät gesperrt ist (ich meine, wenn der Bildschirm nach einer halben Minute ausschaltet) und von dort weitergeht, wenn es wieder entsperrt wird - auch wenn das Stunden später ist.
Das macht für eine ziemlich seltsame Alarm-App. Ich habe in AlarmManager nachgeschaut, aber es scheint, dass es in meinem Fall nicht angebracht ist, da ich nur den Alarm möchte wenn meine App noch läuft. Das Beenden der App sollte es stoppen. Hier ist, was Alarmmanager in der Dokumentation sagt aber:
Hinweis: Der Alarm Manager soll für Fälle, in denen Sie Ihre Anwendungscode ausgeführt haben wollen, zu einem bestimmten Zeit, auch wenn Ihre Anwendung ist nicht derzeit ausgeführt werden. Für das normale Timing Operationen (Ticks, Timeouts, etc) es ist einfacher und viel effizienter zu Handler verwenden.
Die "Handler" -Klasse, die es erwähnt, scheint für etwas völlig anderes als das, was ich versuche zu erreichen.
Also frage ich Sie: Wie kann ich meinen Thread am Leben und zählen auch wenn das Gerät gesperrt ist? Oder gibt es einen anderen Weg?
Können Sie einen Zustand beim Herunterfahren der App festlegen und diesen bei einem Alarmereignis später lesen? – gbn
Sie sagen, dass der Alarm nur dann ausgelöst werden soll, wenn Ihre App noch läuft. Was bedeutet "Laufen" für deine App? Die Idee von Android könnte anders sein als die, die deine App dem Nutzer hier vermitteln soll. – adamp