在短时间内处理大量异步任务

时间:2014-10-24 07:26:40

标签: android android-asynctask intentservice

我需要按特定顺序调用很多xmlrpc请求(其中四个)。我为每个人使用异步任务,这没关系,但似乎是很多代码和读/写文件,我把所有这些异步服务放在一个意图服务中。问题是当我需要在短时间内多次调用intent时,我无法轻松取消或停止异步任务。我知道我可能不应该为此目的使用意向服务所以请告诉我什么是处理大量异步任务的最佳解决方案?

谢谢!

3 个答案:

答案 0 :(得分:0)

您只能使用有限数量的asynctasks( 来自here

private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();
private static final int CORE_POOL_SIZE = CPU_COUNT + 1;
private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1;
private static final int KEEP_ALIVE = 1;

因此,最好只使用意图服务。也许你可以将你的意图/请求存储在收集中并在服务中取消/停止它们?

或许你可以使用Volley?它可以取消队列中的请求。

答案 1 :(得分:0)

使用加载程序(http://developer.android.com/guide/components/loaders.html

您可以在需要时停止它们。

答案 2 :(得分:0)

只需使用装载机。 如果您必须使用以下支持加载器的API - 只需在项目中包含支持库。 加载程序与AsynkTasks相同,但更多改进,可以捕获许多错误。使用它们可以避免许多麻烦。