【问题标题】:How to update UI real-time and continuously?如何实时持续更新 UI?
【发布时间】:2017-09-07 11:53:47
【问题描述】:

我需要在我的应用中显示提要,并希望像 Twitter 应用一样实时更新 UI?

根据我的理解,以下是几种方法,

  1. 我可以通过从服务持续后台调用 API 并使用处理程序更新 UI 来做到这一点。
  2. 我可以注册广播接收器并在更新数据可用时触发它们,然后如果用户仍在同一页面上,则更新 UI。

但是,如果可能的话,我需要找到除此之外的最佳方法,因为将来它可以增加用户/供稿的流量。

【问题讨论】:

  • 没有“最好的方法”。 决定什么最适合你的场景
  • 好的,谢谢。但在上述 2 中,哪一个曾经被强烈推荐或 Twitter 等应用使用?
  • 为了持续更新 UI,当服务器上有更新的数据时,您可能会收到通知,并基于此您可以更新模型和视图两者'和/或'您可以不断调用后台服务期间并检查数据可用性。

标签: android performance feed


【解决方案1】:

1) 我可以通过从服务和 API 持续后台调用来做到这一点 使用处理程序更新 UI。

不要使用此方法,API 的持续后台调用会降低性能。

2) 我可以注册广播接收器并在更新数据可用时触发它们,然后如果用户仍在同一页面上,则更新 UI。

什么时候发送广播? 为此,您可以从后端收到推送通知,通知您的应用更新数据可用,您可以继续使用 BroadcastReceiver

总体而言,2nd 将是选项而不是 1st。

【讨论】:

    【解决方案2】:

    您可以使用 Firebase Cloud Messaging api 来获取您的数据库已更改的通知。在这种情况下,通知将是“数据”类型。从 FCM 收到通知后,您需要在 onMessageReceived() 方法中处理您的逻辑。从那里你可以使用EventBusBroadcastReceiver 任何适合你的要求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-03
      • 1970-01-01
      • 2019-08-17
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多