Si necesitas mantener un dispositivo en ejecución para completar algunas tareas antes de que entre en el estado de suspensión, puedes usar una función de servicio del sistema de PowerManager
llamada bloqueos de activación. Los bloqueos de activación permiten que tu app controle el estado de energía del dispositivo.
Cómo establecer un bloqueo de activación
Para usar un bloqueo de activación, el primer paso es agregar el permiso WAKE_LOCK
al archivo de manifiesto de tu app:
<uses-permission android:name="android.permission.WAKE_LOCK" />
Si tu app incluye un receptor de emisión que usa un servicio para realizar algunas tareas, aquí te mostramos cómo configurar un bloqueo de activación directamente:
Kotlin
val wakeLock: PowerManager.WakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager).run { newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::MyWakelockTag").apply { acquire() } }
Java
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::MyWakelockTag"); wakeLock.acquire();
Cómo liberar un bloqueo de activación
Para liberar el bloqueo de activación, llama a wakelock.release()
. De esta manera, se libera tu solicitud de uso de la CPU. Es importante liberar un bloqueo de activación tan pronto como la app termine de usarlo para evitar que se agote la batería.