Android 如何通知用户新数据可用,以便用户需要刷新?

Android 如何通知用户新数据可用,以便用户需要刷新?,android,json,android-volley,Android,Json,Android Volley,我正在开发一个新闻应用程序。我直接以JSON格式从服务器获取数据,解析数据并在视图中显示。我希望能够使用新的数据,他们需要刷新,而不是自动更新 如何实现这一点?最简单的方法是将json数据字符串值与来自服务器的新值进行比较。大概是这样的: if (currentJSONDataString != newJSONDataString) { Toast.make(context, “Updates available. Please refresh”, Toast.LENGTH_SHORT).sho

我正在开发一个新闻应用程序。我直接以JSON格式从服务器获取数据,解析数据并在视图中显示。我希望能够使用新的数据,他们需要刷新,而不是自动更新


如何实现这一点?

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

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

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

您可以使用firebase消息/通知发送通知给用户?我更喜欢一个简单的snackbar,它显示了当用户使用应用程序和一个触发刷新的侦听器时,您可以使用一个在后台运行的线程,或者查看work manager,它在后台运行,并使用它通知用户刷新数据。这看起来不错。但是如何知道我正在接收的JSON响应有新数据,而不是以前获取的数据?一旦有了新数据,您就发送数据消息(fcm),在接收时向屏幕上的接收器发送本地广播,如果已注册,则使用刷新操作刷新屏幕/显示snackbar。或者显示一个带有持续通知的通知,这样即将到来的刷新通知将被更新,而不是添加到通知栏中。在我的“文章”中,我有两个datetime字段(创建zrticle的时间和修改zrticle的时间)@Krul我认为这在列表视图中没有用处。它只适用于文章详细信息视图中已下载的文章/而不检查列表中的新文章。我想你要做的是设置一个定时器,在后台获取数据,然后与所说的数据进行比较。如果有差异,展示你的小吃吧。