0

私のアプリケーションでは、検索、解析などに多くの AsyncTask を使用しています。AsyncTask を使用するのは、前後に UI を更新する必要があり、それを使用すると非常に簡単だからです。

問題は、古いスレッドが適切に終了せず、スレッドが機能しなくなったときに新しいスレッドを慎重に使用した場合です。

どうすればこの問題を回避できますか?

4

2 に答える 2

1

信号を使用できると思います。あるスレッドでラッチを初期化し、タスクを完了しようとしているときにカウントダウンできるCountDownLatchを使用するのが好きです。他のスレッド呼び出しawait()では、前のスレッドが呼び出されなくなるまでブロックされますcountDown()

于 2012-07-02T07:19:41.260 に答える
1

一連のプロセスに従って、それを行うためのより良い方法はありますか? このようなもの

最初の onPostExecute() で 2 番目の asynctask を開始します。同様に、2 番目の onPostexecute で 3 番目の asynctask を開始します。そのため、より詳細に制御でき、メモリは適切に管理されます (メモリが少ないデバイスでも)。

ありがとう

于 2012-07-02T07:08:10.503 に答える