基本上我想启动几个线程一个接一个地执行。我正在使用Thread.join()
它。但是应用程序类型挂起并进入 ANR 状态。我想知道将 AsyncTask 放入循环中会一个接一个地串行执行所有任务,还是并行执行?
for(String s : list)
{
new asynctask(s).execute();
}
基本上我想启动几个线程一个接一个地执行。我正在使用Thread.join()
它。但是应用程序类型挂起并进入 ANR 状态。我想知道将 AsyncTask 放入循环中会一个接一个地串行执行所有任务,还是并行执行?
for(String s : list)
{
new asynctask(s).execute();
}
基本上我想启动几个线程一个接一个地执行。
阅读此声明后,我立即想到的是您应该考虑使用 IntentService 而不是每次都创建新任务。
基本上 IntentService 是
IntentService 通过 Intent 接收一个请求,其中包含一些关于要完成的任务的信息。然后将此任务添加到队列中,然后按顺序异步完成所有任务。
使用的好处IntentService
是
它将保证该操作至少具有“服务进程”优先级,无论活动发生什么情况。强烈建议您要顺序下载多个文件时。
在这里你会找到关于如何实现的非常好的教程IntentService
。
http://mobile.tutsplus.com/tutorials/android/android-fundamentals-intentservice-basics/