2012-05-24 2 views
1

자주 업데이트해야하는 Android AppWidget을 작성 중입니다 (예, 알고 있겠지만하지 않아도됩니다 ...). 보이는 경우에만 업데이트하고 싶지만 성가 시게도 WallpaperService.Engine.onVisibilityChanged(boolean visible)과 비슷한 내용은없는 것처럼 보입니다."잠자기"Android 기기에서 알람이 울림

여기서 제안하는 방법은 interval 밀리 초마다 업데이트를 트리거하는 알람을 AlarmManager.setRepeating(AlarmManager.RTC, firstShot, interval, pendingIntent)으로 설정하는 것입니다. 이것은 잠들 때 적어도 장치를 깨우지 않을 것입니다.

그것은 내가 한 일입니다. 내 PendingIntent은 다음과 같습니다

final Intent intent = new Intent(context, CountdownWidgetService.class); 
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds); 

final PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); 

CountdownWidgetService은이 경보에 의해 트리거 될 때마다 메시지를 기록합니다. 로그 메시지는 장치가 잠자기 상태 일 때도 나타납니다. 그러나 그것은 내가 생각한 것입니다. 내 실수는 어디 갔지?

답변

1

당신이 가지고있는 다른 앱이 기기를 깨우고있어 알람이 울리는 경우 일 수 있습니다. AlarmManager.RTC을 사용하면 '장치가 깨어 있거나 실행될 때까지 기다린 후 실행하십시오'라는 의미입니다. 어떤 일이 일어나고 있는지 보려면 logcat을 확인하고이 명령을 사용하여 등록 된 다른 알람을 확인하십시오 :

adb shell dumpsys alarm 
+0

@Oderik이 게시물을 수정하기보다는 주석으로 추가하고 싶었을 것입니다. 원하는 경우 아래에 추가하십시오. 편집 : 인내심이 핵심 : 화면이 꺼지고 (ADB가 분리 된) 잠자기 전에 잠시 시간이 필요합니다. 그 후, 알람이 작동하지 않습니다. 올바른 조사를 이끌어내는 데 도움을 주셔서 감사합니다. 얼마나 자주 기기가 깨어나는지 보면서 신선한 부모님을 상기시킵니다. ;) –

+0

아니요, 솔루션을 아직 포함하지 않았기 때문에 대답을 편집하고 싶습니다. 안드로이드는 실제로 잠들기 전에 시간이 좀 걸립니다. 그러나 다른 사람들도 의견에서 그것을 찾을 것입니다. 고마워, 또! – Oderik

+1

그것은 내 대답을 편집 한 것으로 나타났습니다. BTW, 잠자기에 갈 때까지 시간이 걸리는 이유는 일부 앱이 깨우기 ​​잠금 장치를 들고 있기 때문입니다. Android는 기본적으로 화면이 꺼지면 곧 잠자기 상태가됩니다. 앱이 처리를 마칠 때까지 깨어있게 요청할 수 있습니다. http://developer.android.com/reference/android/os/PowerManager.WakeLock.html –

관련 문제