2012-03-12 187 views
2

嘿,我正在尝试做出多个http请求,并想知道在android中执行此操作的最佳方式。目前我正在使用带有线程的IntentService,但是这并不是很好,因为在线程完成之前,onhandleintent会返回。我应该切换到一个常规的服务,并在那里启动我自己的线程或asyncTask更合适? 谢谢我应该怎么做android中的多个http请求

+0

您是否从服务着手? – 2012-03-12 17:51:08

+0

当前从一个活动开始,我打电话给一个IntentService – Tyler 2012-03-12 17:53:09

回答

0

任何时候你处理线程,你将不得不处理同步。例如,当调用onHandleIntent()时,可能需要与HTTP请求线程同步并等待它完成。

如果你事先知道你会做这个有很多,可能是值得考虑的像ThreadPoolExecutor,以节省创建和拆除线程的痛苦一点。如果您想在继续之前等待终止,您仍然需要同步您的线程。 Android有很多方法可以做到这一点,包括抽象,使其实现起来相当简单。

+0

我每次调用intentService时都启动6个线程。每个线程负责使用不同的xml进行http请求以获取不同的数据。然后我将这些数据插入到本地的sqlite数据库中。我的代码看起来像下面这样: http://pastebin.com/fGqXeEbS – Tyler 2012-03-12 18:20:33

+0

我建议你看看ThreadPoolExecutor(https://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor.html)如果你会一直这样做。无论哪种方式,这听起来更适合于实际的服务。 – NuSkooler 2012-03-12 19:11:31

0

如果你已经开始新线程(直接或间接),那么是的,你应该使用Service而不是IntentServiceIntentService的全部意义在于它为您处理线程。

相关问题