我有一个应用程序,它使用http请求从服务器获取数据列表。现在我想在新数据可用时发出通知,并且我认为可以通过服务实现。Android:发送服务请求
这是一个很好的做法吗?服务请求的数量是否有限制?
我想达到的目标是像Gmail应用程序。当我收到一封新邮件时,会显示通知。
我想我的应用程序是为最新的数据成为可能,但我明白,发出请求每5秒钟可能是太多。
我向所有人开放的替代品和各种想法如何做到这一点。
我有一个应用程序,它使用http请求从服务器获取数据列表。现在我想在新数据可用时发出通知,并且我认为可以通过服务实现。Android:发送服务请求
这是一个很好的做法吗?服务请求的数量是否有限制?
我想达到的目标是像Gmail应用程序。当我收到一封新邮件时,会显示通知。
我想我的应用程序是为最新的数据成为可能,但我明白,发出请求每5秒钟可能是太多。
我向所有人开放的替代品和各种想法如何做到这一点。
不知道如果你真的需要提取数据每5秒。当然,这太多了。您有两种选择:
将GCM用作@duynt在评论中建议。如果您从未使用过,请关注Try cloud messaging for Android。通过这种方式,您无需担心在本地管理您的服务,但每当有最新数据可用时,您都会收到通知,以便您可以请求获取并通知更新。
GCM需求的应用程序服务器,必须实现在您的环境。此应用程序服务器使用适当的XMPP或HTTP协议通过选定的GCM连接服务器将数据发送到客户端应用程序。快速浏览About GCM connection server。
以任何理由,如果你想从当地的Android服务组件中提取数据,你仍然可以做到这一点。但5秒频率真的很高。由于设备处于睡眠模式的大部分时间,您必须唤醒设备,然后发送请求才能提取数据。每5秒唤醒一次设备意味着电池消耗以及消耗的数据。
如果您仍希望通过增加频率来继续本地服务选项,请确保您按照How to use http in sleep mode并以此方式实施,否则它将无法在深度睡眠模式下工作。
您必须立即作出决定。
你可以使用同步来做到这一点http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/ – Nas
我认为服务器推送通知是最好的。只要有新数据可用,服务器就会将GCM推送到客户端,而不是每5秒钟提取一次数据。当GCM通知到来时,客户端可以在收到数据后开始请求真实数据和更新数据库或UI。对于Android上的服务,也许你想参考这个链接https://www.youtube.com/watch?v=xHXn3Kg2IQE。希望它是有用的。 – duynt