你能在一个Activity中有两个AsyncTasks吗?

时间:2015-03-09 07:23:50

标签: android android-asynctask

我已经开发了一个Activity,它将解析JSON数据并在ListView中显示结果。我正在为此目的使用AsyncTask。

我现在想要的是,当我点击ListView中的某个项目时,该文件应该开始下载。我可以在同一个活动中编写另一个AsyncTask,以便这个AsyncTask会为我做下载工作吗?在同一个活动中有多个AsyncTasks有什么问题吗?

3 个答案:

答案 0 :(得分:11)

根据Doc是的,你可以。

  

首次引入时,AsyncTasks在单个上串行执行   背景线程。从DONUT开始,这被改成了一个池   允许多个任务并行运行的线程。从...开始   HONEYCOMB,任务在单个线程上执行以避免常见   并行执行导致的应用程序错误。

     

如果您真的想要并行执行,可以调用   executeOnExecutor(java.util.concurrent.Executor,Object [])with   THREAD_POOL_EXECUTOR。

BEst回答How本身就是stackoverflow。

答案 1 :(得分:5)

单个活动中的多个Asynctasks不应该有任何问题。您应该小心清楚地定义每个操作的值(例如,如果任务B依赖于任务A给出的值,请确保A必须先完成),但一般来说,它应该没问题。我现在有一个项目,在第一次安装时运行了三个asynctasks,到目前为止它已经很好了。

答案 2 :(得分:2)

是..你可以。

AsyncTask是简单的线程处理程序实现。