2012年4月26日木曜日

Android WidgetでonUpdateが呼ばれない

@ITのAndroidで動く携帯Javaアプリ作成入門第10回など
何箇所かでサンプルを見ながらコピーコーディングしてたんだけど
一部のサンプルウィジェットが動作しない.
コーディングが悪いのかと思い,サンプルファイルをインポートしてエミュに送っても
やはり動作しない.

どういうことだ.

と思ってたら
原因が判明.
@ITの例でいくと
AppWidgetExamples\res\xml
slide_show.xmlにある
android:updatePeriodMillis="10000"
こいつ.
updatePeriodMillisってのは
ミリ秒単位で指定した間隔毎にonUpdateメソッドを呼ぶ
という時限更新用の設定なんだけど
Android SDK1.6以降では最小値が1800000となっている.
すなわち30分.
もちろん値に0を指定した場合は時限更新ナシにできる.
が,1~1800000に設定した場合は自動的に30分になってしまう.

Android SDK1.6以降ということなので
実質的にupdatePeriodMillisで30分以下は設定不可能.
updatePeriodMillisは使うな,AlarmManagerを使えということらしい.

updatePeriodMillisの残された使い所としては
3時間ごとに画像を変更するとか
1時間ごとにRSSを自動取得するとか
30分ごとに人工無脳が適当な言葉を話すとか
そういう長周期で眺めるウィジェットとかになりそう.

0 件のコメント:

コメントを投稿