2011年4月9日土曜日

Android App ウィジェットの更新頻度について要点だけ

  • updatePeriodMillsの最低間隔は30分
  • updatePeriodMillsによる更新はデバイスの復帰状態を解除する。要注意。
  • もっと短い間隔で更新したい場合はAlarmManagerを使う。こっちはスリープも有効。

Android ウィジェット開発の要点だけに書いたとおり、Android ウィジェットの更新はAppWidgetProviderInfoのupdatePeriodMills間隔で行われることになっている。ただし、この更新は端末がスリープも解除して行ってしまうため、あまり頻繁に行う事は推奨されていないし、実際30分より短い間隔でonUpdateは呼ばれないらしい(設定値が無視される)。

これはデバイスのバッテリー消費を抑えるためでごもっとも。望ましくはユーザに更新間隔を設定させるUIも必要かもしれない。

仮に30分より短い間隔で更新を行いたい場合にはAlarmManagerからIntentをコールするような方法を使い、こちらはスリープ中にデバイスをウェークアップさせてしまうことはない(でも操作中はバックグラウンドで動作してしまうから、やっぱり過度な更新は控えるべきなんだろう)。

AlarmManagerを使った更新のやりかたは別途まとめるつもり。

0 件のコメント:

コメントを投稿