【问题标题】:AsyncTask inside a loop循环内的 AsyncTask
【发布时间】:2012-07-09 06:19:13
【问题描述】:

基本上我想启动几个线程一个接一个地连续执行。我正在使用Thread.join()。但是应用程序类型挂起并进入 ANR 状态。我想知道将 AsyncTask 放入循环中会依次执行所有任务还是并行执行???

for(String s : list)
{
    new asynctask(s).execute();
}

【问题讨论】:

  • 考虑使用IntentService。你可以将任务添加到Queue中。这将在非UI线程上顺序执行。

标签: android multithreading android-asynctask threadpool


【解决方案1】:

基本上我想启动几个线程,然后依次执行 另一个。

读完这句话后我立刻想到的是你应该考虑使用 IntentService 而不是每次都创建新任务。

基本上 IntentService 是

IntentService 通过 Intent 接收请求,其中包括 关于要完成的任务的一些信息。然后这个任务 添加到队列中,然后所有任务完成 顺序和异步。

使用IntentService 的好处是

它将保证操作至少具有“服务进程”优先级,无论活动发生什么。强烈建议您要顺序下载多个文件时。

在这里你会找到关于如何实现IntentService的非常好的教程。

http://mobile.tutsplus.com/tutorials/android/android-fundamentals-intentservice-basics/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多