Puedes establecer un bloqueo de activación para mantener el dispositivo activo de forma temporal.
Dependencias
Tu app debe tener el permiso WAKE_LOCK
para establecer un bloqueo de activación.
Agrega el permiso al manifiesto de tu app:
<uses-permission android:name="android.permission.WAKE_LOCK" />
Crea y adquiere un bloqueo de activación
Para adquirir un bloqueo de activación, haz lo siguiente:
Llama a
PowerManager.newWakeLock()
para crear un bloqueo de activación. Esto crea y configura un objetoPowerManager.WakeLock
, pero no mantiene el dispositivo activo.Cuando quieras mantener el dispositivo activo, llama al método
acquire()
del objeto de bloqueo de activación.
Por ejemplo, si tu app incluye un receptor de emisión que usa un servicio para realizar algunas tareas, puedes usar este código para establecer y adquirir un bloqueo de activación:
Kotlin
val wakeLock: PowerManager.WakeLock =
(getSystemService(Context.POWER_SERVICE) as PowerManager).run {
newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply {
acquire()
}
}
Java
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
"MyClassName::MyWakelockTag");
wakeLock.acquire();
Puntos clave sobre este código
Cuando el código crea el objeto de bloqueo de activación, usa el nombre de la clase como parte de la etiqueta de bloqueo de activación. Te recomendamos que incluyas el nombre de tu paquete, clase o método como parte de la etiqueta de bloqueo de activación. De esta manera, si se produce un error, será más fácil encontrar el bloqueo de activación en tu código fuente. Para obtener más información, consulta Asigna un nombre adecuado al bloqueo de activación.
Consulta también
- Cómo liberar un bloqueo de activación
- Sigue las prácticas recomendadas para el bloqueo de activación