Je souhaite fournir aux utilisateurs de mon application la possibilité de garder l'écran en utilisant un WakeLock
. Dans mon activité principale, je l'ai créé la fonction suivante:Comment implémenter WakeLock en toute sécurité à travers plusieurs activités
protected void processWakeLock(int pauseResume) {
switch (pauseResume) {
case STATE_RESUME:
if (mKeepScreenOn) {
wakeLock.acquire();
}
break;
case STATE_PAUSE:
if (wakeLock.isHeld()) {
wakeLock.release();
}
break;
}
}
Je le suis en train d'appeler de mes et onResume
l'emporte, comme je tiens à vous assurer que je ne provoque pas de verrouillage sur le téléphone de l'utilisateur quand ils ne sont pas activement en utilisant mon application. Mon application a 3 autres vues plein écran. Quelle est la meilleure façon de s'assurer que leur WakeLock
se transporte dans toutes les parties de mon application tout en restant sûr pour le reste de leur téléphone. Mon premier réflexe est de dupliquer le même fragment de code dans chacune de mes activités bien que cela ressemble à beaucoup de plaque de chaudière. Je ne peux pas utiliser onStart
et onStop
soit parce que la visibilité est perdue lorsque je passe à une autre activité en plein écran. Bien que peut-être il serait préférable de
Basé sur le diagramme et l'information trouvée ici (http://developer.android.com/guide/topics/fundamentals.html) Je ne vois pas une meilleure façon d'appliquer le verrou.
Alors quand serait-il approprié d'utiliser un 'WakeLock' – Thomas
@Thomas: Dans un' Service'. Il n'y a aucun intérêt à le faire dans une 'Activity', étant donné l'existence de' setKeepScreenOn() 'sur' View'. – CommonsWare
Il est regrettable que 'setKeepScreenOn()' n'ait pas le même comportement qu'un 'SCREEN_DIM_WAKE_LOCK' – Thomas