ich die Fähigkeit, den Benutzer meiner Anwendung zur Verfügung stellen möchten den Bildschirm zu halten, auf einen WakeLock
verwenden. In meiner Haupttätigkeit habe ich die folgende Funktion erstellt:Wie implementiere Sie sicher WakeLock über mehrere Aktivitäten
protected void processWakeLock(int pauseResume) {
switch (pauseResume) {
case STATE_RESUME:
if (mKeepScreenOn) {
wakeLock.acquire();
}
break;
case STATE_PAUSE:
if (wakeLock.isHeld()) {
wakeLock.release();
}
break;
}
}
ich zur Zeit aus meinen und onResume
Überschreibungen nenne, da ich sicher machen will verursache ich nicht eine Sperre auf dem Telefon des Benutzers, wenn sie nicht meine Anwendung aktiv nutzen. Meine Anwendung hat 3 weitere Vollbildansichten. Was ist der beste Weg, um sicherzustellen, dass ihre WakeLock
überträgt sich auf alle Teile meiner Anwendung, während immer noch sicher für den Rest ihres Telefons.
Mein erster Gedanke ist, den gleichen Code-Schnipsel in jedem meiner Aktivitäten zu duplizieren aber, dass wie viele Kesselblech scheint. Ich kann onStart
und onStop
entweder nicht verwenden, weil die Sichtbarkeit verloren geht, wenn ich zu einer anderen Vollbildaktivität umschalte. Obwohl es vielleicht besser wäre
Basierend auf dem Diagramm und Informationen hier (http://developer.android.com/guide/topics/fundamentals.html) Ich sehe keinen besseren Weg, um das Schloss zu verwenden.
Also, wenn es angemessen wäre, ein 'WakeLock' – Thomas
@Thomas zu verwenden: In einer' Service'. Es macht keinen Sinn, dies in einer 'Activity' zu tun, da' setKeepScreenOn() 'auf' View' existiert. – CommonsWare
Es ist bedauerlich, dass 'setKeepScreenOn()' nicht das gleiche Verhalten wie ein 'SCREEN_DIM_WAKE_LOCK' hat – Thomas