0

おはようございます。

40msごとにAndroidからデバイスにデータを送信しています。今まで、よくわからなかったので、while(true) スレッドと thread.sleep を使用してきました:)。今、次のような「より良い」オプションがたくさんあることがわかりました。

タイマータスク

非同期タスク

ScheduledThreadPoolExecutor

私のシナリオに最適なのはどれですか? デバイスが切断されると例外がスローされる可能性があるため、接続が復元されるまで値の送信を停止する必要があることに注意してください。さらに、データは非常に正確な間隔で送信する必要があり、前のデータよりも 40 ミリ秒未満前に送信することはできません。

ありがとう!

4

1 に答える 1

1

ただし、その直前の多くのオプションは、AsyncTask が実際にはそのリストに属していません。Asynctask は、メイン UI スレッドの外部のバックグラウンド スレッドで操作を実行するために使用されるだけであり、繰り返しタスクのスケジューリングには実際には使用されません。

繰り返しタスクの場合、オプションは次のとおりです。

  1. Android: 定期的にコードを実行する
  2. カウントダウンタイマーがメインスレッドで実行されるときにカウントダウンタイマーを使用します(それが必要な場合)
  3. または、TimerTask を使用します。

あなたのケースに対する私の提案は、オプション 1 または 3 です。

-V

于 2013-05-21T20:18:51.700 に答える