使用单AsyncTask Vs.多个AsyncTask用于来自网络的多个不同请求

时间:2014-03-06 18:57:44

标签: android android-asynctask

我对AsyncTask有疑问 我尝试为10个Json文件打开10个Internet请求,所以我读了它并将其保存到用户设备_由于数据的差异,这个文件必须分开,包括。

那么,将每个请求放在单个AsyncTask中会更好。 因此,我变成了10个AsyncTask,或者在一个AsyncTask中调用所有这10个请求? 为什么你喜欢这种方式呢? 谢谢大家。

3 个答案:

答案 0 :(得分:2)

无需重新发明轮子:)

尝试使用Square中的volley android框架来并行化你的任务

希望这对你有帮助!

答案 1 :(得分:1)

作为一种形式,我喜欢将它们放在单独的异步任务中,因为它们可能在不同的时间完成,而不是围绕它编程,最好使用专为它设计的系统。

例外情况是,产生大量线程可能真的会减慢一切。但10不是那么大的交易。所以,是的,使用单独的任务,恕我直言

答案 2 :(得分:1)

我会把它放在单个AsyncTask中,这实际上是因为AsyncTasks很难在Activites中管理,一旦你的Activity旋转或用户按下Home按钮 - 它开始它的生命周期 - 它可以以onCreate结束 - 这意味着你的活动可能会得到摧毁然后重新创建。现在,如果你需要以某种方式向Activity报告你的结果,那么你就麻烦了。使用一个AsyncTask会更容易。

如果你的AsyncTasks是fire and forget种类,那么可能发出10个AsyncTasks就不会那么糟糕,但是你可以使用自己的Executor,不需要为非gui任务阻止AsyncTask线程池(AsyncTasks自蜂窝系列化。)