Android 多个异步任务不能一起执行

Android 多个异步任务不能一起执行,android,multithreading,Android,Multithreading,这里有一个问题,如果我调用两个AsyncTask,最后一个的doinbackground永远不会被调用。我真的需要从我的主活动线程调用这两个操作 请解释一下这个问题 谢谢 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); . . . . . .

这里有一个问题,如果我调用两个AsyncTask,最后一个的doinbackground永远不会被调用。我真的需要从我的主活动线程调用这两个操作

请解释一下这个问题

谢谢

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…)此方法的版本 线程池执行器;但是,请参见此处的评论,以了解有关 它的用途