来自同一个Activity的多个异步任务

4

我希望在单个活动中从三个不同的rest调用中获取数据。如何使用asynctasks完成此操作?如何协调三个任务?

更新:我想要做的是在更新UI之前等待所有三个任务完成。


虽然您指出必须进行三次调用,但您应该澄清“协调任务”的含义。 - Code Droid
你需要发出一个任务,等待回应后再发下一个任务吗?还是直接发送所有任务,然后等待它们全部返回。 - Code Droid
1
“坐标”这个词太宽泛了,使用起来很模糊,因此我扣了一分。请谨慎选择用词,并具体说明问题的限制条件。 - Code Droid
1
一旦您完成了这个步骤,如果最佳选项尚未被提出,我们将提供我们的意见。 - Code Droid
处理多个AsyncTask的最佳方法是在第一个AsyncTask的onPost()方法中调用下一个AsyncTask。原因是当您使用AsyncTask运行后台线程时,还有一个UI线程正在运行。因此,过多的负载会导致超出堆大小,这是不好的。 - AnujAroshA
这个问题可能是一个重复的问题,但不是 https://dev59.com/Fm855IYBdhLWcg3w7pGg 的重复。请查看问题中的“更新”。 - Jared Rummler
1个回答

1

您可以参考这篇文章

同时运行多个AsyncTasks - 不可能吗?

AsyncTask使用线程池模式来运行doInBackground()中的任务。问题在于,最初(在早期的Android操作系统版本中),线程池大小只有1,这意味着一堆AsyncTasks无法并行计算。但后来他们修复了这个问题,现在线程池大小为5,因此最多可以同时运行5个AsyncTasks。不幸的是,我不记得他们在哪个版本中更改了这个问题。


在 Android 操作系统版本 M 或更高版本中,可以同时运行 5 个异步任务(AsyncTasks)。 - SAVALIYA REENA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接