2016-04-27 11 views
2

Ich habe einen Dienst ausgeführt, der Ereignisse empfängt. Wenn ein Ereignis empfangen wird, brauche ich den Dienst, um den Bildschirm aufzuwecken und eine Aktivität auszuführen.Android-Weckbildschirm von Dienst

Derzeit funktioniert es mit wakeLock Parameter:

PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP) 

ich diese verwenden den Bildschirm zu aktivieren, bevor die Aktivität beginnt. Die Aktivität hat auch Fahnen:

getWindow().addFlags(
      WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON 
        | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

jedoch SCREEN_BRIGHT_WAKE_LOCK und FULL_WAKE_LOCK sind veraltet. Ich möchte wissen, was ist die Alternative zur Verwendung der Wecksperre? Ich war nicht in der Lage, es ohne Wake Lock zu arbeiten.

Antwort

0

Sie könnten FLAG_TURN_SCREEN_ON zu Ihren Fensterflags hinzufügen.

wenn gesetzt als Fenster sichtbar hinzugefügt ist oder gebracht wird, sobald die Fenster angezeigt worden ist, dann stoßen das System den Benutzer Aktivität des Power Manager (als ob der Benutzer sich das Gerät geweckt hatte), um den Bildschirm zu aktivieren .

Auf diese Weise wird der Bildschirm beim Starten von Ihrem Dienst automatisch aktiviert, sodass kein Wakelock erforderlich ist.

Verwandte Themen