0

開発者のサイトによると、onUpdateメソッドはupdatePeriodMillisの後に呼び出されます。しかし、onUpdateたとえば、私がメソッドLog.e ("tag", "update");に書き込む場合、ウィジェットを実行した場合にのみ、彼はログに書き込みます。

何故ですか?

4

1 に答える 1

0

onUpdate()「今すぐこのウィジェットを再開する」ハンドラーのようなものです。ウィジェットのリソースとサービスを(再)初期化/開始する必要があります。システムは非常に低いandroid:updatePeriodMillis値を絶対に尊重onUpdate()しないため、ウィジェットのメインループとして使用することはできません。

あなたがしたいことは:

  1. で:カスタムアクションをonUpdate()使用して新しいAlarmManagerを作成します。を必要なだけ速く繰り返すようにPendingIntent設定します。AlarmManager

  2. onReceive():カスタムアクションを取得し、Log.e()またはあなたが望むものを呼び出します。

注:<Intent-Filter>カスタムアクションを作成したら、それをManifest.xmlのに追加することを忘れないでください。そうでなければ、それonReceive()を受け取ることができないからです。

やや古いが、まだ部分的に関連している:http: //kmansoft.com/2010/04/10/processing-widget-events-with-pendingintents/

于 2012-09-01T11:01:08.523 に答える