잠자기 및 앱 대기 모드에 맞게 최적화 | Android 개발자 | Android Developers
- DozeMode
- 사용자가 플러그를 뽑고 화면이 꺼진 채로 기기를 일정 기간 정지 상태로 두면 기기는 잠자기 모드를 시작
- 잠자기 모드는 시스템이 네트워크 및 CPU를 많이 사용하는 서비스에 대한 앱의 액세스를 제한하여 배터리를 절약
- 시스템에서 지연된 활동을 완료할 수 있도록 주기적으로 잠깐 동안 잠자기 모드를 종료함
- 지연된 활동이 끝나면 다시 잠자기 모드로 진입함. 그리고 시간이 지날수록 시스템은 유지보수 기간의 횟수를 줄임.
2. Doze Mode 상태일 때 제한되는 사항
- 네트워크 액세스
- wake lock을 무시함
- AlarmManager가 다음유지보수 기간으로 연기됨
- Wi-Fi 검색을 실행하지 않음
- 동기화 어댑터 실행을 허용하지 않음
- JobScheduler 실행을 허용하지 않음
3. Doze Mode를 방지할려면?
권한 요청
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
코드
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
String packageName = getPackageName();
if (pm.isIgnoringBatteryOptimizations(packageName)) {
} else {
Intent intent = new Intent();
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + packageName));
startActivityForResult(intent, 0);
}
'안드로이드 > 잡다한 지식' 카테고리의 다른 글
안드로이드 핫스팟 켜기 (0) | 2022.10.05 |
---|---|
안드로이드 재시작 코드 (0) | 2022.10.05 |
구글 22 시작하기 전 정리한 구글 21 Android (0) | 2022.05.15 |
안드로이드에서 적용해본 템플릿 메소드 패턴 (0) | 2022.05.09 |
안드로이드 Sharedpreferences commit vs apply (0) | 2022.03.15 |