【问题标题】:How to notify user that new data is avalable so that they need to refresh?如何通知用户有新数据可用以便他们需要刷新?
【发布时间】:2019-04-29 12:07:05
【问题描述】:

我正在开发一个新闻应用程序。我直接以 JSON 格式从服务器获取数据,对其进行解析并显示在视图中。我希望能够通知用户新数据可用并且它们需要刷新而不是自动更新。

我怎样才能做到这一点?

【问题讨论】:

  • 您可以为此使用 firebase 消息/通知
  • 那会向用户发送通知?我更多的是在一个简单的快餐栏上显示用户何时使用该应用程序和一个触发刷新的侦听器
  • 那么您可以使用在后台运行的线程或查看工作管理器,它在后台运行并使用它可以通知用户刷新数据?。
  • 这看起来不错。但是如何知道我收到的 JSON 响应有新数据,而不是之前获取的数据?
  • 一旦有新数据可用,您发送数据消息 (fcm),在接收时向屏幕上的接收器发送本地广播,如果已注册,则刷新屏幕/显示带有刷新动作的小吃栏。或者显示一个带有恒定通知的通知,我希望即将到来的刷新通知得到更新,而不是添加到通知栏中。单击该重定向到屏幕时,您将获得刷新的内容。

标签: android json android-volley


【解决方案1】:

最简单的方法是将 json 数据字符串值与来自服务器的新值进行比较。像这样的:

if (currentJSONDataString != newJSONDataString) {
Toast.make(context, “Updates available. Please refresh”, Toast.LENGTH_SHORT).show()
}

这里的限制是,这仅检查您当前的数据是否与服务器数据有任何不同。如果您的数据模型中有一些东西,例如指示上次更新时间的日期时间字段或类似的东西,您可以进行更准确的比较,以检查当前数据是否在较新的数据之前。

【讨论】:

  • 在我的“文章”中,我有 2 个日期时间字段(zrticle 的创建时间和修改时间)
  • @Krul 我认为这在列表视图中没有用。它仅适用于已下载的文章/在文章详细信息视图中,而不是对列表中的新文章进行检查。我认为您要做的是设置一个计时器并在后台获取数据,然后与所述数据进行比较。如果有不同,请展示您的小吃店。
猜你喜欢
  • 2010-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 1970-01-01
相关资源
最近更新 更多