Cómo establecer un bloqueo de activación

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:

  1. Llama a PowerManager.newWakeLock() para crear un bloqueo de activación. Esto crea y configura un objeto PowerManager.WakeLock, pero no mantiene el dispositivo activo.

  2. 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