Android-重复WebService调用

问题描述 投票:1回答:3

我需要经常使用JSON网络服务(每5,10秒最多)。

我已经在AsyncTask中实现了webservice调用,出于测试目的,每当我按下按钮时都会执行该调用。

我应该使用处理程序,计时器还是AlarmManager?

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

我使用AsyncTask实现了它,因为当webservice调用出现问题时我无法让应用程序挂起,因此,如果第一个调用失败,如果第二个调用成功,则应该没有任何问题,并且我要处理的数据提取将在第二次执行任务时显示。

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

预先感谢

android timer android-asynctask alarmmanager android-handler
3个回答
1
投票

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


1
投票

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

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

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


0
投票

我从这里找到了很棒的教程

https://www.thepolyglotdeveloper.com/2014/10/use-broadcast-receiver-background-services-android/

服务将每30分钟在后台定期运行一次。根据需求进行更改。

希望它对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.