Wakelock parziali eccessivi

I wakelock parziali sono un meccanismo dell'API PowerManager che consente agli sviluppatori di mantenere la CPU in esecuzione dopo lo spegnimento del display di un dispositivo (a causa del timeout del sistema o della pressione del tasto di accensione da parte dell'utente). La tua app acquisisce un wakelock parziale chiamando acquire() con il flag PARTIAL_WAKE_LOCK o utilizzando altre API che acquisiscono wakelock. L'uso eccessivo di wake lock parziali scarica la batteria del dispositivo perché impedisce al dispositivo di entrare in stati di basso consumo energetico. I wake lock parziali devono essere utilizzati solo quando necessario e rilasciati non appena non sono più necessari.

Se la tua app utilizza in modo eccessivo i wake lock parziali, puoi utilizzare le indicazioni riportate in questa pagina per diagnosticare e risolvere il problema.

Risolvi il problema

Poiché i wakelock possono scaricare la batteria del dispositivo, non devi utilizzarli se esiste un'alternativa. La documentazione Scegli l'API giusta per mantenere attivo il dispositivo può aiutarti a trovare la soluzione migliore per la tua app.

Se devi utilizzare un wakelock, segui le best practice per i wakelock per assicurarti che i wakelock non influiscano sull'efficienza del dispositivo. In particolare, assicurati che ogni dispositivo che acquisisci venga rilasciato e rilascia il blocco il più rapidamente possibile.

La tua app potrebbe utilizzare i wakelock anche se non li acquisisci in modo esplicito. Se vedi wakelock attribuiti a un'app che non riconosci, identificare i wakelock creati da altre API può aiutarti a identificare le API che potrebbero averli creati.

Dopo aver risolto il problema nel codice, puoi verificare le correzioni utilizzando gli strumenti di debug del wakelock locale.

Vedi anche