我正在开发一个 android 应用程序来显示通知。如何以有限的间隔(比如 10 分钟间隔)轮询 web 服务以检查任何更新并在 android 通知面板中显示为通知。
4 回答
您不需要服务。感觉自己破纪录了 在这个用例中,服务将在 95% 的时间里无所事事,但仍在使用系统资源,更重要的是会耗尽电池电量。
请参阅我对使用 AlarmManager 中的警报的类似问题的回答:
编辑:
查看 Android 开发网站上的本教程,了解如何实现通知:http: //developer.android.com/guide/topics/ui/notifiers/notifications.html
Google C2DM提供 Cloud to Device Messaging 服务。您可以使用此服务将消息推送到所有注册的移动设备。这不仅可以提高性能,还可以确保在不断轮询服务器时电池不会耗尽。
对于您的场景,您可以编写一个 java 类来定期轮询 Web 服务并使用 C2DM 服务将消息推送到您的 Android 手机,该消息可以显示为通知。在链接上查看 Vogella 的本教程。或者更好的是,如果您使用 Web 服务只是为了获取更新的详细信息,那么您可以避开 Web 服务,并在发生更改时直接调用 C2DM 推送服务将消息推送到所有注册的设备。
希望这有帮助。:)
使用计时器,您可以在有限时间间隔后调用该 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 秒就会被击中。
定义一个服务,有一个带有计时器的线程,在超时调用 web 服务。