이것을 달성하고 싶습니다 :특정 시간에 매일 알림
첫 번째 응용 프로그램을 켠 후 특정 조건이 충족되면 매일 오후 2시에 알림을받습니다. 조건이 false이면 오늘 알림이 표시되지 않습니다. 오후 2시에 상태를 확인하면 인터넷에서 일부 데이터를 다운로드합니다.
지금까지 나는 AlarmManager 및 그 메소드 setRepeating()을 24 시간 간격으로 사용했습니다. AlarmManager는 Service을 발생시킵니다. 이 서비스에서 데이터를 다운로드하고 조건을 확인한 후 이것이 사실이라면 Notification을 표시합니다. 다운로드가 5 초 이상 지속될 수 있으므로이 서비스에 대해 android:process=":background"
을 선언하여 별도의 프로세스로 실행하고 UI를 차단하지 마십시오.
1 : 사용자가 열리면 응용 프로그램의는 오후 4시 가정 해 봅시다 (과 조건이 true), 그 통지 즉시를 받게됩니다
이 방법은 두 가지 단점이있다. setRepeating() 문서에서 :
시간이 과거에 발생하면
는 알람이 트리거 시간이 반복 간격을 기준으로 얼마나 멀리 과거에 따라 경보 카운트 즉시 을 트리거됩니다.
해당 사용자에게 오늘 날, 다음날에만 알림이 수신되지 않도록하겠습니다.
2 : 사용자가 전화를 끊은 후에 내 알림이 표시되지 않을까 걱정됩니다. AlarmManager 문서에서 : 장치가 잠 (그리고 그들은 그 시간 동안 꺼 경우 선택적으로 장치를 깨울 수)하지만 끄고 재부팅하면 삭제됩니다 동안
등록 된 알람이 유지됩니다.
언제나 작동하도록 할 수 있는지 알 수 없습니다.
더 좋은 방법이 있다면 환영합니다.
이것은 좋은 제안이다, 나는 또한 이것을 사용한다 – slinden77
대단히 감사합니다! 나는 질문이있다, 당신은 확실한가 : twopm.set (GregorianCalendar.HOUR, 2) 시간 오전, 오전 설정 아닌가요? 어쩌면 twoPm.set (GregorianCalendar.HOUR_OF_DAY, 14)을 사용해야합니까? –
예, 당신 말이 맞습니다. – AntonS