Sto sviluppando una piccola applicazione di utilità che analizza i codici a barre 2D e quindi invia ogni codice a barre a un IntentService in cui viene eseguita un'attività più lunga.È possibile contenere più blocchi di sveglia?
Quando viene visualizzata l'attività, è necessario impedire che il dispositivo si blocchi, finché il codice a barre non viene elaborato nel servizio. Se il servizio termina l'elaborazione, si arresta, ma l'attività dovrebbe essere ancora visibile.
Mi piacerebbe tenere un SCREEN_DIM_WAKE_LOCK WakeLock durante il ciclo di vita dell'attività, ma poiché questo tipo non impedisce la CPU di dormire, dovrei anche acquisire un PARTIAL_WAKE_LOCK nell'attività quando viene scansionato un nuovo codice 2D e rilasciarlo nel servizio intent dopo che è stato elaborato.
Lo scopo SCREEN_DIM_WAKE_LOCK è di evitare all'utente l'inconveniente di premere il pulsante di accensione ogni pochi secondi per riattivare il dispositivo e poter leggere un nuovo codice a barre. L'utente dovrà leggere un gran numero di codici uno dopo l'altro e l'attività dovrebbe essere in giro anche per gli intervalli brevi in cui non c'è interazione dell'utente.
So che in Android non è garantita al 100% che l'app sia in primo piano, non chiusa o in primo piano a causa di diverse condizioni che la mia app non può controllare, ma mi piacerebbe andare il più lontano possibile.
Quindi è possibile tenere più WakeLock? Dove potrebbero essere dichiarati essere accesi sia dall'attività che dal servizio? (Singleton, estensione dell'applicazione?)
+1. Ma sto rilasciando lo schermo WakeLock in 'onStop', perché non voglio che vada a letto quando spingo una finestra di dialogo. –
Supponevo che quando una finestra di dialogo è in primo piano, non stai più scandendo i codici a barre, perché l'utente deve rispondere alla finestra di dialogo, Non è giusto lasciare che il sistema dorme, se l'uso non risponde al dialogo nel tempo? – Madushan
Sì, tutto dipende da quanto tempo impiega lo sleep timer. Se ci vogliono 3 secondi, è fastidioso premere il pulsante di accensione. Se ci vuole più tempo, ci sto bene. A seconda del carico di lavoro, potrei persino scaricare il blocco della luminosità dello schermo. –