Android: 从服务发送请求

Android: sending request from service

我有一个应用程序,其中包含我通过 http 请求从服务器获取的数据列表。现在我想在有新数据可用时发出通知,我认为它可以通过服务实现。

这是一个好习惯吗?服务发出的请求数量是否有限制?

我想实现的是类似gmail的应用。当我收到一封新电子邮件时,会显示通知。

我希望我的应用程序的数据尽可能保持最新,但我知道每 5 秒发出一次请求可能太多了。

我对所有替代方案和各种想法持开放态度。

不确定您是否真的需要每 5 秒提取一次数据。当然,这太多了。您有两个选择:

  1. 按照@duynt 在评论中的建议使用 GCM。如果您从未使用过它,请关注 Try cloud messaging for Android。这样您就不必担心在本地管理您的服务,但只要有可用的最新数据,您就会收到通知,因此您可以发出请求以获取该数据并在通知中进行更新。
    GCM 需要一个应用程序服务器 您必须在您的环境中实施。此应用程序服务器使用适当的 XMPP 或 HTTP 协议,通过选定的 GCM 连接服务器将数据发送到客户端应用程序。快速浏览一下About GCM connection server.

  2. 出于任何原因,如果您想从本地 Android 服务组件中提取数据,您仍然可以这样做。但是5秒的频率确实很高。由于大多数时间设备处于睡眠模式,您必须唤醒设备然后发送请求以提取数据。每 5 秒唤醒一次设备意味着电池会耗尽并消耗数据。
    如果您仍想通过增加频率来继续使用本地服务选项,请确保您遵循 并以这种方式实施它,否则它将无法在深度睡眠模式下工作。

你现在必须做出决定。