- updatePeriodMillsの最低間隔は30分
- updatePeriodMillsによる更新はデバイスの復帰状態を解除する。要注意。
- もっと短い間隔で更新したい場合はAlarmManagerを使う。こっちはスリープも有効。
Android ウィジェット開発の要点だけに書いたとおり、Android ウィジェットの更新はAppWidgetProviderInfoのupdatePeriodMills間隔で行われることになっている。ただし、この更新は端末がスリープも解除して行ってしまうため、あまり頻繁に行う事は推奨されていないし、実際30分より短い間隔でonUpdateは呼ばれないらしい(設定値が無視される)。
これはデバイスのバッテリー消費を抑えるためでごもっとも。望ましくはユーザに更新間隔を設定させるUIも必要かもしれない。
仮に30分より短い間隔で更新を行いたい場合にはAlarmManagerからIntentをコールするような方法を使い、こちらはスリープ中にデバイスをウェークアップさせてしまうことはない(でも操作中はバックグラウンドで動作してしまうから、やっぱり過度な更新は控えるべきなんだろう)。
AlarmManagerを使った更新のやりかたは別途まとめるつもり。
0 件のコメント:
コメントを投稿