我有一个JSON响应,
基本上是一个类别列表
[{event_cat_id: "1", event_cat_name: "Sport"
}, { event_cat_id: "25", event_cat_name: "Cinema" }]
使用ID,我在服务器上查询事件列表。
发回的所有事件都存储在本地数据库中。
我的问题是类别列表可以更改,我想知道在服务器上检查更新的最佳方法是什么。
每次点击视图我都可以发送请求?这会影响用户体验吗?
在android上构建
答案 0 :(得分:1)
在服务器端,如果记录可用,则保留每个记录和属性的上次更新的时间戳 例如:
id: 25, name: Cinema, available: 1, timestamp: 1342777317
从时间戳开始,在服务器上查询数据很容易。首先,同步最后同步时间仅为0
您无法删除服务器端的记录,可以将其设置为不可用:available: 0
答案 1 :(得分:0)
您可以使用AlarmManager设置触发服务器请求的不精确重复事件,这样您的信息会经常更新,但可以节省电量。您应该使用服务或intentservice在后台线程中触发服务器请求和响应。一旦发生变化,您就可以使用广播或ContentObserver通知您的活动。
这是一个很好的例子http://www.dotkam.com/2011/01/10/android-prefer-alarms-and-intent-receivers-to-services/
答案 2 :(得分:0)
无论我从中了解到什么,我都建议您在服务器数据库上提供任何更新或类别时使用C2DM推送通知。它会将消息推送到设备,设备代码将尝试从服务器URL中提取数据。
通过这种方式每次用户设备无法ping通服务器,它将减少服务器的负载,并节省设备的电池(耗尽电池)。