1

In my app, I continuously create an AsyncTask about every 5 seconds. I have inspected the task during debug and can clearly see that the task always completes its process and exits the doInBackground method. No code in the onPostExecute is ever executed. Yet the AsyncTask continues to remain in memory as I can see in Eclipse. I thought that maybe it would just get reused for the next loop or eventually garbage collected but another one gets created and this continues. Eventually enough of them get created and slows the system down.

What could be the potential problem?

4

1 に答える 1

1

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

AsyncTaskスレッドはそのままにしておきます。

ソースの質問:AsyncTaskスレッドは決して死ぬことはありません

于 2013-02-08T07:38:46.660 に答える