我正在开发一个Android应用程序以显示通知。如何以有限的间隔(例如间隔10分钟)轮询网络服务以检查任何更新并在Android通知面板中显示为通知。
答案 0 :(得分:9)
您不需要服务。我觉得自己像是破纪录。在这个用例中,服务将在那里停留95%的时间,但仍然使用系统资源,更重要的是耗尽电池。
请参阅我使用AlarmManager中的警报的类似问题的答案:
Running task periodicaly(once a day/once a week)
编辑:
请参阅Android开发网站上的本教程,了解如何实施通知:http://developer.android.com/guide/topics/ui/notifiers/notifications.html
答案 1 :(得分:6)
Google C2DM提供了Cloud to Device Messaging服务。您可以使用此服务将消息推送到所有已注册的移动设备。这不仅可以提高性能,还可以确保在连续轮询服务器时电池没有耗尽。
对于您的场景,您可以编写一个java类来定期轮询Web服务并使用C2DM服务将消息推送到您的Android手机,该手机可以显示为通知。由Vogella在link上查看本教程。或者更好的是,如果您仅仅是为了获取更新的详细信息而使用Web服务,那么您可以避免使用Web服务并直接调用C2DM推送服务,以便在发生更改时将消息推送到所有已注册的设备。
希望这有帮助。 :)
答案 2 :(得分:2)
使用计时器,您可以在e.x
的有限间隔后调用该Web服务Timer waitingTimer = new Timer();
waitingTimer.schedule(new TimerTask()
{
@Override
public void run()
{
runOnUiThread(new Runnable()
{
public void run()
{
// code to hit xml after time interval
}
});
}
},0,20000); // mention time interval after which your xml will be hit.
这里20000意味着每20秒就会被击中。
答案 3 :(得分:0)
在超时调用webservice时定义一个具有带定时器的线程的服务。