저는 2D 바코드를 스캔 한 다음, 더 긴 작업이 수행되는 IntentService에 각 바코드를 제출하는 작은 유틸리티 앱을 개발 중입니다.여러 개의 Wake Lock을 보유 할 수 있습니까?
활동이 표시 될 때 바코드가 서비스에서 처리 될 때까지 장치가 절전 모드로 들어 가지 않도록해야합니다. 서비스가 처리를 끝내면 자체적으로 중지되지만 작업은 여전히 표시되어야합니다.
활동주기 동안 SCREEN_DIM_WAKE_LOCK WakeLock을 보유하고 싶지만이 유형으로 CPU가 잠자기되는 것을 방지하지 못하므로 새로운 2D 코드를 스캔 할 때 활동에서 PARTIAL_WAKE_LOCK을 획득해야합니다 처리 된 후 의도 서비스에서 해제합니다.
SCREEN_DIM_WAKE_LOCK의 목적은 장치를 깨우고 새 바코드를 읽을 수 있도록 몇 초마다 전원 버튼을 누르는 불편 함을 피하기위한 것입니다. 사용자는 많은 수의 코드를 하나씩 읽어야하며 사용자 상호 작용이없는 짧은 간격에도 활동이 있어야합니다.
Android에서 애플리케이션이 제어 할 수없는 여러 조건으로 인해 앱이 상단에 있거나 폐쇄되지 않았거나 포어라운드 된 것을 100 % 보증하지는 않지만 가능한 한 멀리 가고 싶습니다.
그래서 여러 개의 WakeLock을 가질 수 있습니까? 활동과 봉사 모두에서 그들이 어디서 접근 할 수 있다고 선언 될 수 있습니까? (Singleton, extends application?)
+1. 하지만 대화 상자를 밀 때 잠자기하고 싶지 않기 때문에'onStop'에서 WakeLock 화면을 공개하고 있습니다. –
대화 상자가 앞에 오면 사용자가 대화 상자에 응답해야하기 때문에 더 이상 바코드를 스캔하지 않는다고 가정합니다. 사용이 응답하지 않으면 시스템을 잠자기 상태로 만들지 않습니까? 대화 시간에? – Madushan
네, 잘 시간은 수면 타이머가 걸리는 시간에 따라 다릅니다. 3 초가 걸리면 전원 버튼을 누르는 것이 귀찮습니다. 시간이 오래 걸린다해도 괜찮습니다. 작업량에 따라 화면 희미한 자물쇠를 버릴 수도 있습니다. –