8

我正在开发一个 android 应用程序来显示通知。如何以有限的间隔(比如 10 分钟间隔)轮询 web 服务以检查任何更新并在 android 通知面板中显示为通知。

4

4 回答 4

10

不需要服务。感觉自己破纪录了 在这个用例中,服务将在 95% 的时间里无所事事,但仍在使用系统资源,更重要的是会耗尽电池电量。

请参阅我对使用 AlarmManager 中的警报的类似问题的回答:

定期运行任务(每天一次/每周一次)

编辑:

查看 Android 开发网站上的本教程,了解如何实现通知:http: //developer.android.com/guide/topics/ui/notifiers/notifications.html

于 2012-02-10T11:44:41.110 回答
6

Google C2DM提供 Cloud to Device Messaging 服务。您可以使用此服务将消息推送到所有注册的移动设备。这不仅可以提高性能,还可以确保在不断轮询服务器时电池不会耗尽。

对于您的场景,您可以编写一个 java 类来定期轮询 Web 服务并使用 C2DM 服务将消息推送到您的 Android 手机,该消息可以显示为通知。在链接上查看 Vogella 的本教程。或者更好的是,如果您使用 Web 服务只是为了获取更新的详细信息,那么您可以避开 Web 服务,并在发生更改时直接调用 C2DM 推送服务将消息推送到所有注册的设备。

希望这有帮助。:)

于 2012-02-10T12:01:49.893 回答
2

使用计时器,您可以在有限时间间隔后调用该 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 秒就会被击中。

于 2012-02-10T11:35:52.793 回答
0

定义一个服务,有一个带有计时器的线程,在超时调用 web 服务。

于 2012-02-10T11:35:27.490 回答