Ich arbeite an einer Anwendung, die einige Dienste im Hintergrund mit AlarmManager hervorbringt. Timing ist sehr wichtig für unsere Anwendung und die Funktionalität kann nicht auf das nächste Wartungsfenster warten. Wenn ein Benutzer aufgefordert wird, die Anwendung in die Whitelist aufzunehmen, ist dies kein Problem, behebt jedoch nicht das Problem, Alarme auszusetzen. Auch der Batterieverbrauch ist nicht so wichtig.Doze-Modus Handhabung
Die erste mögliche Lösung, die mir in den Sinn kam, war, einen ständig laufenden Vordergrunddienst zu starten, der die Neuplanung von Diensten anstelle von AlarmManager übernimmt, aber dabei die Basisstruktur unserer Anwendung verschiebt und für uns nicht machbar ist.
Der aktuelle Fix, den ich gerade implementiert habe, besteht darin, eine Push-Benachrichtigung mit hoher Priorität zu senden und beim Empfang der Nachricht die Wake-Sperre zu aktivieren und den Bildschirm einzuschalten, um den Schlafmodus zu beenden.
Ich wollte wissen, ob es eine alternative Möglichkeit gibt, den Schlafmodus zu unterbrechen? Ist es auch möglich, ohne eine Wecksperre zu nehmen? Kann es Auswirkungen auf die Implementierung der oben genannten Lösung geben?
P.S. Ich verwende UrbanAirship für Push-Benachrichtigungen.
* Auch ist es möglich, ohne eine Spur Sperre zu nehmen? * Ist das, was möglich ist? –
Ist es möglich, beim Empfang von Push-Benachrichtigungen mit hoher Priorität den Bildschirm zu öffnen, ohne den Bildschirm einzuschalten? Ich erwog, keine Benachrichtigung im Tray zu zeigen, aber ohne das wäre der Bildschirm noch seltsamer. –
Ich habe versucht, das ähnliche Problem mit der FCM-Nachricht zu lösen. aber es weckt meine App sehr kurze Zeit. Hattest du eine gute Lösung? –