開発者のサイトによると、onUpdate
メソッドはupdatePeriodMillisの後に呼び出されます。しかし、onUpdate
たとえば、私がメソッドLog.e ("tag", "update");
に書き込む場合、ウィジェットを実行した場合にのみ、彼はログに書き込みます。
何故ですか?
開発者のサイトによると、onUpdate
メソッドはupdatePeriodMillisの後に呼び出されます。しかし、onUpdate
たとえば、私がメソッドLog.e ("tag", "update");
に書き込む場合、ウィジェットを実行した場合にのみ、彼はログに書き込みます。
何故ですか?
onUpdate()
「今すぐこのウィジェットを再開する」ハンドラーのようなものです。ウィジェットのリソースとサービスを(再)初期化/開始する必要があります。システムは非常に低いandroid:updatePeriodMillis
値を絶対に尊重onUpdate()
しないため、ウィジェットのメインループとして使用することはできません。
あなたがしたいことは:
で:カスタムアクションをonUpdate()
使用して新しいAlarmManager
を作成します。を必要なだけ速く繰り返すようにPendingIntent
設定します。AlarmManager
でonReceive()
:カスタムアクションを取得し、Log.e()
またはあなたが望むものを呼び出します。
注:<Intent-Filter>
カスタムアクションを作成したら、それをManifest.xmlのに追加することを忘れないでください。そうでなければ、それonReceive()
を受け取ることができないからです。
やや古いが、まだ部分的に関連している:http: //kmansoft.com/2010/04/10/processing-widget-events-with-pendingintents/