Android 多个异步任务不能一起执行
这里有一个问题,如果我调用两个AsyncTask,最后一个的doinbackground永远不会被调用。我真的需要从我的主活动线程调用这两个操作 请解释一下这个问题 谢谢Android 多个异步任务不能一起执行,android,multithreading,Android,Multithreading,这里有一个问题,如果我调用两个AsyncTask,最后一个的doinbackground永远不会被调用。我真的需要从我的主活动线程调用这两个操作 请解释一下这个问题 谢谢 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); . . . . . .
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
.
.
.
.
.
.
new ClientListener(this).execute();
new DatabaseReader(this).execute();
}
AsyncTask使用线程池模式从doInBackground()运行stuff。问题是最初(在早期的Android OS版本中)池大小只有1,这意味着对于一堆异步任务没有并行计算。但是后来他们修复了这个问题,现在大小是5,所以最多可以同时运行5个异步任务。不幸的是,我不记得他们到底在什么版本中改变了这一点 根据谷歌文档 首次引入时,AsyncTasks是在单个服务器上串行执行的 背景线程。从甜甜圈开始,它被改成了一个 允许多个任务并行运行的线程。之后 蜂巢,计划将其改回单线程 避免由并行执行引起的常见应用程序错误。如果你 如果真正想要并行执行,可以使用 executeOnExecutor(Executor,Params…)此方法的版本 线程池执行器;但是,请参见此处的评论,以了解有关 它的用途