2016-12-30 7 views
2

Ich möchte, dass meine App immer wieder aufwacht. Der Code, den ich mit dem Alarm setzen:Alarm nicht wecken Telefon

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
alarmManager.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + pollInterval, pendingIntent); 

Es gibt Code in dem Alarmhandler den Alarm mit dem obigen Code zu setzen.

Das Problem ist, dass der Alarm nicht klingelt, wenn sich das Telefon im Tiefschlaf befindet (z. B. in den frühen Morgenstunden).

Irgendwelche Vorschläge?

Antwort

2

Wenn Sie ein Telefon mit Android 6.0 oder höher verwenden, müssen Sie sich mit dem Doze-Mechanismus befassen. Wenn sich das Telefon im Ruhezustand befindet, funktioniert der AlarmManager nicht sofort. Die Dokumentation sagt:

Standard-Alarmmanager Alarme (einschließlich setExact() und setWindow()) an das Fenster zur nächsten Wartung zurückgestellt werden.

und

Wenn Sie Alarme einstellen, die während in Doze Feuer, verwenden setAndAllowWhileIdle() oder setExactAndAllowWhileIdle(). So

, versuchen Sie einfach setExactAndAllowWhileIdle() für API> 22

Dokumentation here