如何实时和持续更新UI?

时间:2017-09-07 11:53:48

标签: android performance feed

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

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

  1. 我可以通过从服务连续后台调用API并使用处理程序更新UI来实现此目的。
  2. 我可以注册广播接收器并在更新数据可用后触发它们,然后在用户仍在同一页面时更新UI。
  3. 但是,如果可能的话,我需要找到除此之外的最佳方法,因为将来它可以增加用户/ Feed的流量。

2 个答案:

答案 0 :(得分:2)

  

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

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

  

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

何时发送广播? 为此,您可以从后端获取推送通知,告知您的应用更新的数据可用,您可以继续使用 BroadcastReceiver

整体第二将是选项,而非第一。

答案 1 :(得分:0)

您可以使用Firebase Cloud Messaging API获取有关数据库已更改的通知。在这种情况下,通知将为“数据”类型。从FCM收到通知后,您需要使用onMessageReceived()方法处理逻辑。从那里可以使用EventBusBroadcastReceiver来满足您的要求。