Android
Alarm Manager
개발자_미노
2020. 9. 2. 18:31
반응형
개념
- 애플리케이션이 사용되지 않을 때 시간에 따른 작업을 처리 할 수 있습니다.
- 지정된 시간 또는 정해진 간격으로 intent를 실행 합니다.
- Broadcast receive와 알람을 사용하여 서비스를 시작하고 다른 작업을 할 수 있습니다.
- 애플리케이션 외부에서 작동하기 때문에, 앱이 실행 중이 아니거나 대기 상태일 경우에도 작업이나 이벤트를 트리거 할 수 있습니다.
- 앱의 리소스 요구사항을 최소화 하는데 도움이 됩니다.
- 타이머나 실행중인 백그라운드 서비스를 사용하지 않고 작업을 예약할 수 있습니다.
권장사항
- 알람의 빈도를 최소한으로 유지합니다.
- 절전 모드를 되도록 해제하지 않습니다.
- 알람 트리거 시간을 너무 정밀하게 설정하지 않습니다.
주요메서드 / 인터페이스
- AlarmManager.AlarmClockInfo → 예정된 알람 시계 이벤트에 관해 정의하
- AlarmManager.OnAlarmListener → 알람 시간이 되었을 때 호출되는 콜백
- setAlarmData() → SharedPreference를 이용하여 알람 시간을 저장
- initTimePicker() → 앱 시작했을 때 설정한 알람 시간으로 TimePicker를 초기
- setAlarmTime() → 알람에 쓰일 시간을 Calendar 객체에 추가
- showAlarmTime() → TimePicker의 시간을 변경하여 버튼 클릭 시 설정한 알람 시간을 토스트로 보여줌
- initTime() → 알람 시간을 설정
- initView() → activity_main의 view 초기화
- dairyNotification() → 매일 부팅 후 리시버의 반복 여부, 시간 설정 등을 결정
- AlarmManager.RTC_WAKEUP → 설정 시간에 디바이스가 꺼져 있을 경우 디바이스를 깨움
- AlarmManager.setExactAndAllowWhileIdle() → 대기모드에 있어도 알람이 가능하도록 하는 메서드
- PackageManager.setComponentEnabledSetting() → 매개변수로 받는 컴포넌트의 활성화/비활성화 설정
- PackageManager.COMPONENT_ENABLE_STATE_ENABLED → 명시적으로 활성화
- PackageManager.DONT_KILL_APP : 해당 컴포넌트를 포함하는 앱을 없애지 않기 위해 명시
반응형