0

そのため、プログラムで Handler に送信する、事前定義された時間依存のメッセージの大規模な (最大 5000) 配列があります。これらのメッセージの中には、わずか 40 ミリ秒間隔である必要があるものもあります。sendMessageAtTime() の束を呼び出してそれらをキューに入れるだけで、適切な時間にそれぞれのハンドラーが呼び出されると思いました。

残念ながら、少なくとも私の AVD では、ハンドラーを数回実行した後、最後のメッセージが送信されるまで何もしないようです。ハンドラーが追いついていませんか? (つまり、次に呼び出される前に終了できない?)

sendMessageAtTime() は、ハンドラーが現在のメッセージを処理し終わるまでメッセージの送信を待機しますか?

メッセージを送信する指定時刻が過去の場合はどうなりますか? メッセージを完全にドロップしますか、それともキュー内の他の「後の」メッセージを送信する前に送信しますか?

ハンドラーを「追いつく」ためのテクニックはありますか? たとえば、ハンドラーへのメッセージに要求された時間を含めて、ハンドラーが手遅れと判断した場合に何もできないようにすることができます。

ありがとう。

4

0 に答える 0