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 : 해당 컴포넌트를 포함하는 앱을 없애지 않기 위해 명시
반응형