android - バックグラウンドスレッドでの重い計算

android

(BT経由で)リアルタイムデータを受信し、それを処理してグラフに表示する必要があるアプリケーションをAndroidで開発しています。
処理部分はかなり重いので、バックグラウンドでやりたいです。
私は私の可能なオプションについて読んでいます:

別のスレッドを使用した新しいサービス->別のライフサイクルを設定する必要はありません(アプリケーションが閉じるとすぐに処理が終了します)。

新しいスレッドで実行可能->起動メソッドを呼び出すことができるのは1回だけです(そして、4秒ごとに処理を実行する必要があります。)

AsyncTask->以前と同じ問題、 "execute"は1回しか呼び出せません。

私の最良の選択肢は何ですか?
データを処理するたびに(3秒または4秒ごとに)新しいAsyncTask(または新しいTheread)を作成することは(メモリとパフォーマンスの観点から)実行可能ですか?

ありがとうございました
答え
AsyncTaskはスレッドプールを使用します。したがって、新しいAsyncTaskを2回実行すると、古いスレッドが使用されます。したがって、新しいスレッドの開始について心配する必要はありません。

IntentServiceを使用できます。 IntentServiceへのコマンドは、1つのワーカースレッドからエンキューおよび実行されます。その結果、一度に実行されるコマンドは1つだけです。
関連記事

android - 全画面モードのIntent Android YouTube Playerアプリ

android - 異なるデータで同じアクティビティ(同じレイアウト)を呼び出す方法は?

android - Androidのカスタムギャラリービューに説明を追加する

android - Androidでは、ImageViewに子ビューを追加できますか?

java - 断片的にキーが押されたことを検出できますか

android - オートコンプリートテキストビューを空に保つ方法(入力する準備ができています)?

java - Androidの一意のID [重複]

android - ギャラリーからアプリのフォルダーを削除する方法

android - Androidのリストビューに入力されない

android - 非常に基本的な迷路のようなアルゴリズムの提案が必要