我有两个asyncTasks,比如A和B.两个都来自不同的活动。当需要调用A然后我的应用程序移动到另一个活动并调用B时,就会出现这种情况。 A的持续时间大于B.现在的问题是,当我调用A然后移动到其他活动并调用B时,它等待A完成然后调用B.
如果必须,请理解问题,然后再进行投票。我彻底搜查了,最后决定问这个问题。
如何使这两个AsyncTasks彼此独立?
答案 0 :(得分:2)
AsyncTask
发布HoneyComb在单个线程上执行:
首次引入时,AsyncTasks在单个上串行执行 背景线程。从DONUT开始,这被改成了一个池 允许多个任务并行运行的线程。后 HONEYCOMB,计划将此更改回单个线程 避免并行执行导致的常见应用程序错误。如果你 真正想要并行执行,你可以使用 executeOnExecutor(Executor,Params ...)此方法的版本 THREAD_POOL_EXECUTOR;但是,请参阅那里的评论以获得警告 它的用途。
要并行执行它们:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
else
task.execute();