我有一个使用大量 AsyncTasks 的应用程序,我遇到的问题是在我调用执行后的几分钟内没有启动一个特别重要的任务。
如果我将以下内容用于我的 ICS 设备,它可以工作;
if(Build.VERSION.SDK_INT >= 11)
{
myTask.executeOnExecutor( AsyncTask.THREAD_POOL_EXECUTOR, stuff );
}
与 pre-ICS 不同;
myTask.execute(stuff);
我知道 ICS 已将线程执行更改为序列化,但我无法弄清楚是什么阻碍了线程队列。
在 Eclipse 中的调试中列出了大约 20 个线程,但我已经阅读过,这可能是不正确的,因为调试器倾向于继续显示那些实际上并不存在的线程。
我如何确定哪些线程正在阻止序列化队列,这样我就不必从 ICS 上的默认值切换,甚至可能提高由于线程池执行器而没有看到问题的前 ICS 设备的性能是默认行为。