開発者のサイトによると、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/