2009-11-23 3 views
2

나는 안드로이드에서 알람과 함께 이상한 것을 눈치 채고있다 - 그들은 항상 정확한 간격으로 장치를 깨우지는 않는다. 예를 들어, RTC_WAKEUP 또는 이와 유사한 방법을 사용하여 5 분마다 서비스를 시작하도록 경보를 설정 한 경우 장치가 잠자기 상태가 될 때까지 모든 것이 올바르게 작동합니다. 그 후에는 몇 분 또는 1 시간 가까이에 알람이 울리지 않을 수 있습니다. 보통은 결국 발사됩니다. 메뉴를 눌러 기기를 깨면 항상 켜집니다. 반복 알람을 사용하면 (매번 다시 설정하는 것과 비교하여) 동일한 효과가 있습니다.구글 안드로이드의 알람

내 질문에, 장치가 잠 들어있을 때 적절한 간격으로 경보가 울리도록 보장됩니까? 밀리 초 또는 초 단위의 정밀도는 기대하지 말아야한다는 것을 이해하지만 수십 분이 소요됩니까?

답변

7

Android에서 프로그래밍 한 적이 없지만 다소 지루해서 주변에서봤을 때 매우 관련이있는 것으로 나타났습니다. http://groups.google.com/group/android-developers/browse_thread/thread/f0303a539de3a74a (읽으려면 Google 계정에 로그인해야합니다.)

가 나는 알람 관리기 문서에서 다른 모습을했고 나는 방송 이벤트에 알람을 사용하는 방법에 대한 그 단지 회담이 서비스를 시작하지 것으로 나타났습니다. 제가 그 onReceive() 에 잠금을 획득 대신하는 된 브로드 캐스트를 사용하여 주변 상황을 변경하고 AlarmClock에 응용 프로그램의 예를 다음과 같은 또 다른 클래스 의 고정 부재로서의 로크 기준 저장된 : https://android.googlesource.com/platform/packages/apps/AlarmClock

그건 효과가있는 것 같습니다. 내 생각 엔 무슨 일이 있었는지 내 서비스 경보가 시작되고 있었지만, 기기가 가끔 수면으로 되돌아갔습니다. 잠자기 전에 깨우침을 얻을 수있었습니다. 자물쇠. 알람 수신시 의 유일한 보장은 이며 onReceive는 으로 완료된다는 것입니다.

방금 ​​사람이 동일한 내용을 검색하는 중일 것이라고 생각했습니다. 문제가 발생했습니다.

+0

완벽한 답변입니다. 감사! – Melllvar

3

또한 보여야은 : 또한 http://developer.android.com/reference/android/app/AlarmManager.html

, 장치가 잠 들어, 프로그램이 이미 서비스 만이 그 시점에서 실행,()가 호출 OnPause 있었다. 즉, 브로드 캐스트 수신기가 웨이크 잠금 장치 (wake lock)를 갖지 않으면 (즉, 문서에서 제안하는 방식과 달리) 원래 서비스 호출이 장치의 활성 상태를 유지하지 못한다는 의미입니다.

+0

우수한 포인터 주셔서 감사합니다. – Melllvar