我已经开发了一个Activity,它将解析JSON数据并在ListView中显示结果。我正在为此目的使用AsyncTask。
我现在想要的是,当我点击ListView中的某个项目时,该文件应该开始下载。我可以在同一个活动中编写另一个AsyncTask,以便这个AsyncTask会为我做下载工作吗?在同一个活动中有多个AsyncTasks有什么问题吗?
答案 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是简单的线程处理程序实现。