頻繁に更新する必要のあるAndroidAppWidgetを作成しています(そうです、そうすべきではありません...)。表示されている場合にのみ更新してほしいのですが、迷惑なことに。に似たものはないようWallpaperService.Engine.onVisibilityChanged(boolean visible)
です。
ここで推奨されるアプローチは、ミリ秒AlarmManager.setRepeating(AlarmManager.RTC, firstShot, interval, pendingIntent)
ごとに更新をトリガーするアラームを設定することです。interval
これは、少なくともデバイスがスリープ状態のときにデバイスをスリープ解除しません。
それは私がしたことです。私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
メッセージがアラームによってトリガーされるたびに、ログにメッセージが記録されます。デバイスがスリープ状態になっているはずの場合でもログメッセージが表示されますが、それは私が想定していないことです。私の間違いはどこにありますか?