android - 定期连接到服务器并检查更新可用性的最佳方法是什么

标签 android

定期在后台通过 Web 服务 API 查找链接/资源和连接服务器的方法,并检查服务器上更新数据的可用性,而不是每次都解析服务器响应。

我有一台服务器,其中有一些数据并将在一个月内更新。我在它上面公开了一个服务,它被 android 应用程序使用。因此,为了减少服务器负载和提高电池电量,我想定期调用该服务以检查最新数据是否可用。

如果有人能帮我解决这个问题,我将不胜感激。

最佳答案

最好的机会是使用 GCM来自服务器的消息,在这种情况下,可以使用的逻辑如下:

  1. Android 设备向 GCM 服务注册并请求初始数据
  2. 服务器记录特定 Android 设备最后一次更新每项数据的时间
  3. 在每次数据更新时,服务器都会向注册的设备发送一条消息
  4. 设备请求新数据
  5. 服务器使用上次更新日志只发送新数据并更新更新日志

另一个不错的选择是使用 Android Sync Adapter具有更长的刷新间隔。

  1. 在服务器的每个响应中,发送最后更新的日期
  2. 设备将发送此数据以及更新数据请求,即 /request/data?last_update=[epoch_here]
  3. 服务器搜索比指定日期更新的数据,如果没有找到任何数据,它会返回 304 Not Modified

您可以组合上述选项,以便使用 GCM 进行更快的更新,并在设备确实收到 GVM 消息的情况下(即如果设备在特定时间段内未使用)间隔很长。

关于android - 定期连接到服务器并检查更新可用性的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25054940/

相关文章:

android - onItemClick 中的 alertDialog

具有动态高度的Android ViewPager

Android:如何合并 2 个 AttributeSet 对象?

java - 什么是 maven settings.xml 文件以及它与 pom.xml 有何不同

android - Android 中的调用端监听器

android - 地点选择器启动后自动关闭

java - 碰撞检测在 2d android 中不起作用

android - AnimateLayoutChanges 不适用于 RecyclerView

android - 如何动态添加元数据(不在 list 中,而是在代码中)?

java - android 从计时器任务的另一个 Activity 调用函数