私のプログラムは、加速度計のデータが私が決めたしきい値を超えると、Webサーバーにデータを送信しています。だから、私は操作を送信するためのスレッド機構を使用:Android、スレッドの使用
if(threshold is exceeded)
thread_send .start();
しかし、この使用原因「スレッドすでに使用」のエラー。だから、私は悪いと思う方法を以下のように使用しています。
新しいスレッドが毎回作成されます。その使用は否定的な結果をもたらすか? (例えば、メモリの問題やパフォーマンスの問題など)
あなたの提案はありますか?
Editted:
私のプログラムは、非常に多くの場合、Webサーバーにデータを送信する必要があります。 correctly.So遅い作業を働いている最も重要なことは、限り、プログラムが突然停止することはできませんとして、許容..です
私はあなたの提案に沿ったExecutorServiceの使用:
ExecutorService threadExecutor = Executors.newSingleThreadExecutor();
........
if(threshold is exceeded) {
threadExecutor.execute(this);
}
しかし、エラーが発生しました: ReceivedExecutionException ..
どうすればよいですか?
データを送信する頻度や送信の速さなどの要因によって異なります。たとえば、しばらく待つことができれば、データがメモリに保存され、アプリが終了したら一度にすべて送信することができます。データをほぼ連続して送信すると、複数の作業を行う単一のスレッド、または 'Executors.newXXX'によって作成されたものなどのスレッドプールがより良いかもしれません。 –