[안드로이드] DozeMode
Android DozeMode
Key : 배터리 수명을 위해, 충전중이지 아닐때 !
잠자기 모드
사용자가 기기의 플러그를 뽑고 화면이 꺼진 채로 일정 시간 동안 변화 없는 상태로 유지되면, 잠자기 모드로 들어갑니다. 이 모드에서는 기기가 시스템을 절전 모드 상태로 유지하려 시도합니다. 이 모드에서 기기는 정기적으로 잠시 동안 정상 작동을 재개하여 앱 동기화가 일어날 수 있도록 하고 보류된 작업이 있으면 시스템이 이를 수행할 수 있도록 합니다.
특징
앱이 Doze 상태에 있는 동안 다음과 같은 제한 사항이 적용됩니다.
- 네트워크 액세스가 정지됩니다.
- 시스템은 wake locks를 무시합니다.
- 표준 AlarmManager 알람(setExact() 및 setWindow() 포함)은 다음 유지관리 기간으로 연기됩니다.
- 잠자기 모드 중 알람이 실행되도록 설정해야 하는 경우에는 setAndAllowWhileIdle() 또는 setExactAndAllowWhileIdle()을 사용합니다.
- setAlarmClock()으로 설정된 알람은 정상적으로 실행됩니다. 시스템은 알람이 실행되기 직전에 잠자기 모드를 종료합니다.
- 시스템은 Wi-Fi 스캔을 수행하지 않습니다.
- 시스템은 동기화 어댑터 실행을 허용하지 않습니다.
- 시스템은 JobScheduler 실행을 허용하지 않습니다.
앱 대기 모드
앱 대기 모드는 사용자가 활발하게 사용하지 않는 경우, 시스템이 앱의 유휴 상태를 결정하게 합니다. 시스템은 사용자가 일정 시간 앱을 터치하지 않으면 이 결정을 내립니다. 기기의 플러그가 뽑혀 있다면 시스템이 네트워크 액세스를 비활성화하고 앱이 유휴로 간주될 경우 동기화와 작업을 중단합니다.
진입할 때
다음 중에 어떤 것도 실행되지 않았을 때, 대기 모드로 전환 됩니다.
- 사용자가 명시적으로 앱을 실행합니다.
- 앱에 현재 포그라운드에 있는 프로세스가 있습니다(액티비티 또는 포그라운드 서비스 중 하나의 형태로, 또는 다른 액티비티나 포그라운드 서비스가 사용 중인 상태로).
- 앱이 알림을 생성하여 사용자가 그것을 잠금 화면에서 보거나 알림 트레이에서 확인합니다.