Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 两个不同的AsyncTasks同时执行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个完全不同的AsyncTask实现,比如说AT1和AT2.

首先执行AT1,然后执行AT2. AT1在doInBACkground中等待,直到AT2通过每500毫秒轮询一次数据完成任务.但这从未发生过.

所以我基本上想要的是:

但似乎发生的事情是:

除了AT1从未完成,AT2永远不会启动.

有没有办法可以强制这两个AsyncTasks在两个单独的线程上执行,还是有另一个解决方案呢?

首先启动AT2是不可能的,然后执行AT1.

编辑
为了澄清:AT1在用户打开特定屏幕时执行,并且需要根据位置下载该屏幕的数据. AT2在位置更改时执行,当发生这种情况时,会进行一些无法在UI线程上完成的计算.

当AT2从未执行过时,AT1没有下载数据的位置,因此需要等待AT2完成.当AT2执行时,位置数据已经存在,AT1不需要等待.

此外,这个问题发生在ICS,而不是在Android 2.3中,如this answer所示.

解决方法

当我发布这个问题时,this question出现在相关部分.
它建议使用executeOnExecutor,我已经实现了如下:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODEs.HONEYCOMB) {
    new SetLOCATIOnAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,LOCATIOn);
} else {
    new SetLOCATIOnAsyncTask().execute(LOCATIOn);
}

大佬总结

以上是大佬教程为你收集整理的android – 两个不同的AsyncTasks同时执行全部内容,希望文章能够帮你解决android – 两个不同的AsyncTasks同时执行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。