我有两个完全不同的实现AsyncTask
,比如说AT1
和AT2
。
AT1
先执行,再AT2
执行。AT1
通过每 500 毫秒轮询一次该数据,等待doInBackground
直到AT2
完成其任务。但这永远不会发生。
所以我基本上想要的是这个:
但似乎发生的事情是:
除了AT1
从未完成,AT2
也从未开始。
有没有办法可以强制这两个AsyncTask
s 在两个单独的线程上执行,或者有另一种解决方案吗?
不可能先启动AT2
然后再执行AT1
。
编辑
澄清:AT1
当用户打开特定屏幕时执行,并且需要根据位置下载该屏幕的数据。AT2
在位置更改时执行,当发生这种情况时,会进行一些无法在 UI 线程上完成的计算。
whenAT2
从未执行过,AT1
没有位置可以下载数据,所以需要等待AT2
完成。当AT2
已经执行时,位置数据已经存在,AT1
无需等待。
此外,这个问题发生在 ICS 中,而不是在 Android 2.3 中,就像这个答案所暗示的那样。