Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在Android中异步任务不会被销毁_Android_Android Asynctask - Fatal编程技术网

为什么在Android中异步任务不会被销毁

为什么在Android中异步任务不会被销毁,android,android-asynctask,Android,Android Asynctask,在我的应用程序中,我大约每5秒连续创建一个异步任务。我在调试期间检查了该任务,可以清楚地看到该任务始终完成其进程并退出doInBackground方法。onPostExecute中的任何代码都不会执行。然而,异步任务仍然保留在内存中,正如我在Eclipse中看到的那样。我认为它可能会被重新用于下一个循环,或者最终被垃圾收集,但是另一个循环会被创建,并且这会继续。最终,它们中的足够多被创造出来,并减慢了系统的速度 潜在的问题是什么 AsyncTask管理使用ThreadPoolExecutor创建

在我的应用程序中,我大约每5秒连续创建一个异步任务。我在调试期间检查了该任务,可以清楚地看到该任务始终完成其进程并退出doInBackground方法。onPostExecute中的任何代码都不会执行。然而,异步任务仍然保留在内存中,正如我在Eclipse中看到的那样。我认为它可能会被重新用于下一个循环,或者最终被垃圾收集,但是另一个循环会被创建,并且这会继续。最终,它们中的足够多被创造出来,并减慢了系统的速度

潜在的问题是什么

AsyncTask管理使用ThreadPoolExecutor创建的线程池。信息技术 将有5到128个线程。如果有超过5个线程, 这些额外的线程在开始之前最多会停留10秒 被移除。(注:这些数字适用于当前可见的开放式 源代码,并因Android版本而异)

请不要使用异步任务线程

来源问题:

AsyncTask管理使用ThreadPoolExecutor创建的线程池。信息技术 将有5到128个线程。如果有超过5个线程, 这些额外的线程在开始之前最多会停留10秒 被移除。(注:这些数字适用于当前可见的开放式 源代码,并因Android版本而异)

请不要使用异步任务线程


源问题:

只要
doInBackground()
在有限时间内返回,这不会是问题,并且该线程将被回收用于将来的任务。您是否尝试过一次调试单个异步任务,或者从调试角度切换线程,只要
doInBackground()
在有限时间内返回,这不会是一个问题,并且该线程将被回收用于将来的任务。您是否尝试过一次调试单个异步任务,或者从调试角度在线程之间切换