如何处理来自服务器的更新-同步



我有一个JSON响应,

基本上是类别列表

[{event_cat_id: "1", event_cat_name: "Sport" 
}, { event_cat_id: "25", event_cat_name: "Cinema" }]

使用ID,我向服务器查询事件列表。

所有发回的事件都存储在本地数据库中。

我的问题是类别列表可能会更改,我想知道在服务器上检查更新的最佳方式是什么。

我可以在每次点击视图时发送请求吗?这会影响用户体验吗?

构建在android 上

在服务器端,如果记录可用,则为每个记录和属性保留上次更新的时间戳
例如:

id: 25, name: Cinema, available: 1, timestamp: 1342777317
  1. 获取服务器当前时间
  2. 从上次同步后修改的服务器获取数据
  3. 分析数据并将其存储在本地数据库中
  4. 从1写入服务器时间。点作为上次同步时间

查询自时间戳以来修改的服务器上的数据很容易。第一次同步时,最后一次同步时间仅为0。
您不能删除服务器端的记录,可以将它们设置为不可用:available: 0

您可以使用AlarmManager设置触发服务器请求的不精确重复事件,这样您的信息可以频繁更新,但可以节省电池。您应该使用服务或意图服务在后台线程中触发服务器请求和响应。一旦发生更改,您可以使用广播或数据库的ContentObserver通知您的活动。

这里有一个很好的例子http://www.dotkam.com/2011/01/10/android-prefer-alarms-and-intent-receivers-to-services/

无论我从中了解到什么,我都建议您在服务器数据库上有任何更新或类别可用时使用C2DM推送通知。它会将消息推送到设备,设备代码会尝试从服务器url中提取数据。

通过这种方式,每次用户设备都不能ping到服务器,这将减少服务器的负载,并节省设备的电池(耗尽电池)。

最新更新