Android - 重复WebService调用

时间:2013-03-19 16:08:44

标签: android timer android-asynctask alarmmanager android-handler

我需要经常使用JSON Web服务(每隔5,10秒)。

我在AsyncTask中实现了webservice调用,只要按下按钮就会执行该调用,以进行测试。

我应该使用处理程序,计时器甚至AlarmManager吗?

我有点困惑,因为AsyncTask创建了自己的线程,但是这些方法中的任何一个都不会创建另一个线程,从而创建一个会创建另一个线程的线程吗?

我使用AsyncTask实现它,因为我无法承担应用程序在Web服务调用中出现问题时挂起的情况,所以如果第一次调用失败,如果第二次调用成功则不应该有任何问题和数据我' m抓取将在第二次执行任务时显示。

(GCM可能是一个解决方案,但现在我需要使用轮询而不是通知..)

提前致谢

2 个答案:

答案 0 :(得分:0)

我建议您使用Handler.postDelay(Runnable r,long delayMillis)并在所需的延迟后重新开始您的过程。

答案 1 :(得分:0)

处理程序不会创建新线程,它们出现在UI线程上。因此,您无法对其执行HTTP请求。

我实际上不会为您的用例建议使用AsyncTasks。您将要求完成无序的请求。此外,根据您运行的操作系统版本,它们可能会或可能不会并行运行。

我对你的建议是使用一个线程。它们存在于Android中,如果您希望在活动处于前台时连续运行,它们是首选的卸载方法,而您只需要担心一件事而不是N个任务。 (如果你想在不在前台时运行它,你需要一个服务)。