1. ホーム
  2. android

[解決済み] AsyncTaskのスレッドは死なない

2022-11-04 01:16:30

質問

私は AsyncTask を使用して、ユーザーがボタンを押したことに応答してデータをフェッチしています。これはうまく機能し、データの取得中にインターフェイスが応答し続けるのですが、Eclipse デバッガーで何が起こっているかをチェックしたところ、毎回新しい AsyncTask が作成されるたびに (一度しか使用できないため、かなり頻繁に)、新しいスレッドが作成され、決して終了されないことがわかりました。

その結果、大量の AsyncTask スレッドが大量に存在することになります。これが実際に問題なのかどうかはわかりませんが、私はこれらの余分なスレッドをどうしても取り除きたいのです。

これらのスレッドを削除するにはどうしたらよいでしょうか。

どのように解決するのですか?

AsyncTask で作成されたスレッドプールを管理します。 ThreadPoolExecutor . スレッドプールは 5 から 128 のスレッドを持ちます。5スレッド以上ある場合、それらの余分なスレッドは削除される前に最大で10秒間粘着します。(注: これらの数値は現在目に見えるオープン ソース コードに対するもので、Android のリリースによって異なります)。

を残して AsyncTask のスレッドだけにしてください。