2012-06-21 2 views
0

음, 흥미로운 문제가 있습니다. 나에게는 화면에 가장 가까운 항목이 거의 표시되지 않는 미리 알림과 같은 위젯이 있습니다. 각 항목 시간, 올 때. 나는 앞으로 나올 품목들, 지나치지 않은 품목들만 보여줄 필요가있다. 정기적 인 업데이트가 적어도 30 분마다 완료 될 수 있기 때문에, 저를 위해 충분하지 않습니다 (내 항목은 11.54, 12.07 등과 같은 tiem을가집니다). 그래서 나는 단지 1 옵션 = 일정을 원하는 모든 간격 (예 : 매 5 분)에 화면을 업데이트 할 수있는 서비스를 예약했습니다.지능형 위젯 업데이트 (일정한 간격이 아님)

그러나 이것은 나를 위해 매우 좋지 않아 내가 조금 함께 싸우고있는 두 요구 사항이 있기 때문에 :

  • 실행 매우 자주 (< 5 분)
  • 가 너무 많이 사용하지 않는를 배터리 및 기타 리소스

그래서 지능형 업데이트와 같은 것이 가능합니까?

가) 업데이트 화면의 모든 장치가 사용자로, (= 사용자가 전화로 뭔가) B)를하고있다하지만 장치가 자고 때 (그 쓸모를 업데이트하지 않는 잠금이 해제 일분 수있는 '내가 좋아하는 예를 알고리즘에 대한 의미 업데이트 결과보기)?

또는 "적어도 5 분마다 실행되지만 근무일에는 오전 8 시부 터 오후 8 시까지만 실행하는 것과 비슷합니다"? 간단한 지능형 서비스 예약 ...

답변

0

그래서 나는 원하는 모든 간격 (예 : 5 분마다)으로 화면을 업데이트 할 수있는 1 옵션 = 일정을 잡았습니다.

AlarmManager과 같은 다른보다 효율적인 옵션이 있습니다.

지능형 업데이트가 가능합니까? 예를 들어 알고리즘을 의미합니다

인텔리전트 알고리즘은 매분, 초 또는 밀리 초가 아닌 목록이 변경 될 때만 앱 위젯을 업데이트하면된다는 사실을 인식합니다.

AlarmManager을 사용하면 목록의 첫 번째 항목보다 1 분 이상 알람을 설정할 수 있습니다. 알람 이벤트에서 제어권을 얻으면 앱 위젯을 업데이트 한 다음 AlarmManager을 사용하여 다음에 목록에서 1 분 동안 알람을 설정하십시오. 또한 다른 소스 (UI, 동기화 프로세스 등)에서 목록이 변경되면 앱 위젯을 업데이트하고 이전 알람을 필요로 할 수있는 경우 AlarmManager을 사용하여 현재 알람을 취소하고 새 알람을 예약하십시오.

+0

그래, 지금 당장 이걸 구현하고 있습니다.) "더 간단한"옵션이있는 경우 내 자신이 직접 알고 싶었습니다. 음, 유망하게 생각한 또 다른 옵션은 SCREEN_ON 및 SCREEN_OFF 이벤트를 듣는 것이 었습니다. 배터리를 사용하는 것이 가장 좋습니다. 그러나 몇 가지 이상한 이유로 내 방송 수신기는이 2 가지 유형의 의도를들을 수 없습니다. 그럼 난이 스레드 http://stackoverflow.com/questions/2575242/android-intent-action-screen-on-doesnt-work-as-a-receiver-intent-filter에 대한 귀하의 회신을 발견하고 실현, 그 항상 모든 것이 100 % 문서화되었습니다.) – qkx

+0

@qkx : "음, 유망하게 생각한 또 다른 옵션은 SCREEN_ON 및 SCREEN_OFF 이벤트를 수신하는 것이 었습니다. 배터리를 사용하는 것이 가장 좋습니다." - 정말로. 결국 사용자가 목록을 업데이트하기 위해 화면을 껐다가 켜도록 강요하고 싶지는 않습니다. 따라서 화면 상태 변경 이외에 다른 트리거 *가 필요합니다.'_WAKEUP'가 아닌 알람과 함께'AlarmManager'를 사용하면 장치가 잠 들어있을 때 불필요한 업데이트를 피할 수 있으며 가능한 한 가장 효율적인 방식으로 화면 상 업데이트를 동시에 처리 할 수 ​​있습니다. – CommonsWare

+0

내 말은, 예를 들어 5 분 동안 정기적으로 itnerval (alarmmanager)에서 서비스를 실행하면 화면이 꺼져있을 때이 알람이 취소되므로 서비스가 꺼져도 서비스가 실행되지 않습니다. 화면이 켜지면 같은 간격으로 실행되도록 알람과 일정 서비스를 다시 작성해야합니다. 하지만 그것은 중요하지 않습니다, 그래서 내 자신의 알고리즘을 구현할 것입니다 ... 질문 폐쇄;) – qkx