我有两个完全不同的实现AsyncTask,比如说AT1和AT2。
AT1先执行,再AT2执行。AT1通过每 500 毫秒轮询一次该数据,等待doInBackground直到AT2完成其任务。但这永远不会发生。
所以我基本上想要的是这个:

但似乎发生的事情是:

除了AT1从未完成,AT2也从未开始。
有没有办法可以强制这两个AsyncTasks 在两个单独的线程上执行,或者有另一种解决方案吗?
不可能先启动AT2然后再执行AT1。
编辑
澄清:AT1当用户打开特定屏幕时执行,并且需要根据位置下载该屏幕的数据。AT2在位置更改时执行,当发生这种情况时,会进行一些无法在 UI 线程上完成的计算。
whenAT2从未执行过,AT1没有位置可以下载数据,所以需要等待AT2完成。当AT2 已经执行时,位置数据已经存在,AT1无需等待。
此外,这个问题发生在 ICS 中,而不是在 Android 2.3 中,就像这个答案所暗示的那样。