Ho un'attività con alcuni Handlers
che vengono eseguiti a intervalli non più di 5 minuti. L'attività viene avviata da uno BroadcastReceiver
e può essere avviata con lo schermo spento in attesa che l'utente prenda il telefono e ottenga l'input dell'utente, quando ciò accade, l'attività onPause()
viene chiamata così sicuramente la CPU è in modalità di sospensione. Non ho impostato l'attività per attivare lo schermo perché voglio risparmiare più batteria possibile.Un handler postDelayed non viene attivato quando la CPU dorme?
L'ho provato con il mio telefono e funziona molto bene, mentre lo schermo è spento tutto Handlers
esegue tutto il codice che devono eseguire. Se accendo e spengo lo schermo mentre l'attività è aperta, tutto funziona correttamente.
Ora, ho letto ovunque che alcuni dispositivi non funzionano come previsto quando lo schermo si spegne e la CPU dorme, il più delle volte con gli accelerometri. Ora la mia domanda è, ho bisogno di acquisire un WakeLock
così la CPU non dorme mentre la mia attività è aperta? Voglio davvero saperlo perché, come ho detto prima, non voglio "sprecare" la batteria acquistando un costoso WakeLock
.
Preferirei una risposta dettagliata di una persona che sa davvero come funziona.
E perché si utilizzano le attività per eseguire attività in background? Un'attività viene utilizzata per visualizzare cose e non eseguire attività. Hai esaminato i servizi? – tolgap
No no, l'attività non sta facendo attività in background. È un'attività che si apre con un ricevitore Broadcast in attesa che l'utente controlli il telefono e lo veda, ma non voglio aggiungere il flag 'KEEP_SCREEN_ON', ecco perché a volte l'attività è aperta con lo schermo spento (o lo schermo si spegne mentre l'attività è aperta). –