【问题标题】:Android: Polling for every 2 secAndroid:每 2 秒轮询一次
【发布时间】:2012-08-16 10:26:41
【问题描述】:

我的应用程序的一个功能是每 2 秒检索一次实时数据(JSON 对象)并显示它(仅当应用程序处于前台时)。我每 2 秒执行一次异步任务。但这使应用程序变慢。我已经寻找替代方案,但我只有 C2DM 选项。由于服务器限制,我无法使用它。
您能否告诉我另一种或有效的轮询方式?

【问题讨论】:

  • 对于轮询使用service 而不是Async task
  • 但是从服务更新活动不会再次成为开销吗?

标签: android json long-polling


【解决方案1】:

如果您可以控制您的服务器,一个选项是您可以切换到 Comet(长期持有的 http 请求)之类的东西,以避免持续轮询请求的必要性。

【讨论】:

  • 但我对服务器没有任何控制权。
  • 所以我唯一的建议是在您收到回复后再次进行投票。如果这没有帮助,请尝试使用普通线程和处理程序......我就是这样做的,我的应用程序没有任何缓慢
  • 我使用处理程序实现了该功能,但如果我使用处理程序,更新 UI 会有延迟。
  • 可能是其他原因导致延迟。你在什么设备上测试?如果是模拟器,请注意它比真实设备慢得多
【解决方案2】:

将异步任务的执行从每两秒更改为在获得先前更新的响应后,您可以在 onpostexecute 函数中启动它...这将使您的用户界面更快 还可以尝试使用 gzip,以便更快地传输数据 不要将异步任务池化

你的用户界面变得越来越慢,因为异步任务在前一个矿石完成之前就被触发了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2023-03-29
    • 2017-04-12
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多