我正在開發一個小型實用程序,掃描二維條碼,然後將每個條形碼提交給執行較長任務的IntentService。是否可以保存多個Wake Locks?
當顯示活動時,它應該防止設備進入休眠狀態,直到條形碼在服務中被處理。如果服務完成處理,它將自行停止,但活動仍應可見。
我想在活動生命週期中持有SCREEN_DIM_WAKE_LOCK WakeLock,但由於此類型不會阻止CPU進入睡眠狀態,因此在掃描新的2D代碼時,我還需要在活動中獲取PARTIAL_WAKE_LOCK ,並在處理後將其釋放到意向服務中。
SCREEN_DIM_WAKE_LOCK的目的是爲了避免用戶每隔幾秒鐘推動電源按鈕來喚醒設備並能夠讀取新的條形碼的不便。用戶必須一個接一個地閱讀大量的代碼,並且活動應該在沒有用戶交互的短時間間隔內進行。
我知道在Android中,由於我的應用程序無法控制的幾種情況,沒有100%保證應用程序處於最佳狀態,沒有關閉或未預先確定,但我希望儘可能地去。
所以有可能容納多個WakeLocks?他們可以在哪裏被宣佈同意活動和服務? (單例,擴展應用程序?)
+1。但是我在'onStop'中釋放了屏幕WakeLock,因爲當我推送一個對話框時,我不想讓它睡覺。 –
我認爲當前面有一個對話框時,你不再掃描條形碼,因爲用戶必須響應對話框,如果使用不響應及時對話? – Madushan
是的,這一切都取決於睡眠計時器需要多長時間。如果需要3秒鐘,按下電源按鈕會很煩人。如果花費更長時間,我很好。根據工作負載的不同,我甚至可能會轉儲屏幕暗淡的鎖。 –