02 Ago 2019

alarmmanager 예제

앱에 따라 알람을 취소하는 기능을 포함할 수 있습니다. 알람을 취소하려면 더 이상 발사하지 않으려는 보류 중인 인텐트를 전달하는 알람 관리자에서 cancel()을 호출합니다. 예: 트리거 시간 요구 사항이 부정확한 반복 경보를 예약합니다. 예를 들어 매시간 반복되는 알람이지만 반드시 매시간 맨 위에 있는 것은 아닙니다. 예를 들어, 시간 요구 사항이 엄격한 드문 앱의 경우 경보는 오전 8시 30분에 정확하게 발사되어야 하며, 그 이후 의 시간마다 setRepeating()를 사용해야 합니다. 그러나 가능하면 정확한 경보를 사용하지 않아야합니다. 두 유형 모두 화면이 꺼져 있으면 장치의 CPU를 깨우라는 "웨이크 업"버전이 있습니다. 이렇게 하면 예정된 시간에 알람이 울립니다. 이 기능은 앱에 특정 작업을 수행할 수 있는 창이 제한된 경우와 같은 시간 종속성이 있는 경우에 유용합니다.

알람 유형의 절전 모드 해제 버전을 사용하지 않으면 기기가 다음에 깨어있을 때 모든 반복 알람이 울립니다. 앱의 수명 이외에 작업을 트리거하는 일반적인 시나리오는 데이터를 서버와 동기화하는 것입니다. 이것은 반복 알람을 사용하려는 유혹을 받을 수 있는 경우입니다. 그러나 앱의 데이터를 호스팅하는 서버를 소유하고 있는 경우 동기화 어댑터와 함께 GCM(Google 클라우드 메시징)을 사용하는 것이 AlarmManager보다 더 나은 솔루션입니다. 동기화 어댑터는 AlarmManager와 동일한 모든 일정 옵션을 제공하지만 훨씬 더 많은 유연성을 제공합니다. 예를 들어 동기화는 서버/장치의 "새 데이터" 메시지(자세한 내용은 동기화 어댑터 실행 참조), 사용자의 활동(또는 비활성), 시간 등을 기반으로 할 수 있습니다. GCM 및 동기화 어댑터를 사용하는 시기와 방법에 대한 자세한 내용은 이 페이지 상단의 연결된 비디오를 참조하십시오. Alarm(AlarmManager 클래스 기반)은 응용 프로그램의 수명 이외에 시간 기반 작업을 수행할 수 있는 방법을 제공합니다. 예를 들어 경보를 사용하여 일기 예보를 다운로드하기 위해 하루에 한 번 서비스를 시작하는 것과 같은 장기 실행 작업을 시작할 수 있습니다. 사용자가 제공한 특정 시간 이후에 실행되는 간단한 AlarmManager 예제를 살펴보겠습니다. 세트 (int, 긴, android.app.PendingIntent)와 같이 시스템이 저전력 유휴 (일명 doze) 모드에있는 경우에도이 알람을 실행할 수 있습니다.

이러한 유형의 경보는 유휴 상태에서 실제로 알람이 꺼져야 하는 경우에만 사용해야 합니다. 경보가 전달되면 앱이 약 10초 동안 시스템의 임시 허용 목록에 추가되어 해당 응용 프로그램이 작업을 완료할 추가 절전 모드 해제 잠금을 획득할 수 있도록 합니다. 귀하의 웹 사이트는 훌륭하고 모든 안드로이드 튜토리얼은 우수합니다. 나는 당신이 일을 매우 쉽게 만드는 모든 기능을 설명하기 위해 완전한 작업 예를 준다는 사실을 좋아합니다. 다음은 ELAPSED_REALTIME_WAKEUP를 사용하는 몇 가지 예입니다. 시스템 절전(예: _WAKEUP 이외 경보 유형)에 의해 경보가 지연되는 경우 건너뛴 반복이 가능한 한 빨리 배달됩니다. 그 후, 미래의 알람은 원래 일정에 따라 전달됩니다; 그들은 시간이 지남에 따라 표류하지 않습니다. 예를 들어 매 시간 상단에 되풀이 알람을 설정했지만 전화가 7:45에서 8:45까지 잠들어 있는 경우 전화가 깨어나자마자 알람이 전송되고 다음 알람이 9:00에 전송됩니다.

특정 간격(예: 반시간마다)에 알람이 발생하면 경과된 실시간 유형 중 하나를 사용합니다. 일반적으로 이것은 더 나은 선택입니다. 알람에 대한 일반적인 클럭 유형은 "경과 실시간"과 "실시간 시계"(RTC)의 두 가지 유형이 있습니다.