음, 흥미로운 문제가 있습니다. 나에게는 화면에 가장 가까운 항목이 거의 표시되지 않는 미리 알림과 같은 위젯이 있습니다. 각 항목 시간, 올 때. 나는 앞으로 나올 품목들, 지나치지 않은 품목들만 보여줄 필요가있다. 정기적 인 업데이트가 적어도 30 분마다 완료 될 수 있기 때문에, 저를 위해 충분하지 않습니다 (내 항목은 11.54, 12.07 등과 같은 tiem을가집니다). 그래서 나는 단지 1 옵션 = 일정을 원하는 모든 간격 (예 : 매 5 분)에 화면을 업데이트 할 수있는 서비스를 예약했습니다.지능형 위젯 업데이트 (일정한 간격이 아님)
그러나 이것은 나를 위해 매우 좋지 않아 내가 조금 함께 싸우고있는 두 요구 사항이 있기 때문에 :
- 실행 매우 자주 (< 5 분)
- 가 너무 많이 사용하지 않는를 배터리 및 기타 리소스
그래서 지능형 업데이트와 같은 것이 가능합니까?
가) 업데이트 화면의 모든 장치가 사용자로, (= 사용자가 전화로 뭔가) B)를하고있다하지만 장치가 자고 때 (그 쓸모를 업데이트하지 않는 잠금이 해제 일분 수있는 '내가 좋아하는 예를 알고리즘에 대한 의미 업데이트 결과보기)?
또는 "적어도 5 분마다 실행되지만 근무일에는 오전 8 시부 터 오후 8 시까지만 실행하는 것과 비슷합니다"? 간단한 지능형 서비스 예약 ...
그래, 지금 당장 이걸 구현하고 있습니다.) "더 간단한"옵션이있는 경우 내 자신이 직접 알고 싶었습니다. 음, 유망하게 생각한 또 다른 옵션은 SCREEN_ON 및 SCREEN_OFF 이벤트를 듣는 것이 었습니다. 배터리를 사용하는 것이 가장 좋습니다. 그러나 몇 가지 이상한 이유로 내 방송 수신기는이 2 가지 유형의 의도를들을 수 없습니다. 그럼 난이 스레드 http://stackoverflow.com/questions/2575242/android-intent-action-screen-on-doesnt-work-as-a-receiver-intent-filter에 대한 귀하의 회신을 발견하고 실현, 그 항상 모든 것이 100 % 문서화되었습니다.) – qkx
@qkx : "음, 유망하게 생각한 또 다른 옵션은 SCREEN_ON 및 SCREEN_OFF 이벤트를 수신하는 것이 었습니다. 배터리를 사용하는 것이 가장 좋습니다." - 정말로. 결국 사용자가 목록을 업데이트하기 위해 화면을 껐다가 켜도록 강요하고 싶지는 않습니다. 따라서 화면 상태 변경 이외에 다른 트리거 *가 필요합니다.'_WAKEUP'가 아닌 알람과 함께'AlarmManager'를 사용하면 장치가 잠 들어있을 때 불필요한 업데이트를 피할 수 있으며 가능한 한 가장 효율적인 방식으로 화면 상 업데이트를 동시에 처리 할 수 있습니다. – CommonsWare
내 말은, 예를 들어 5 분 동안 정기적으로 itnerval (alarmmanager)에서 서비스를 실행하면 화면이 꺼져있을 때이 알람이 취소되므로 서비스가 꺼져도 서비스가 실행되지 않습니다. 화면이 켜지면 같은 간격으로 실행되도록 알람과 일정 서비스를 다시 작성해야합니다. 하지만 그것은 중요하지 않습니다, 그래서 내 자신의 알고리즘을 구현할 것입니다 ... 질문 폐쇄;) – qkx