0

我有一个 JSON 响应,

基本上是一个类别列表

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

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

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

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

每次单击视图时我都可以发送请求吗?会不会影响用户体验?

基于安卓构建

4

3 回答 3

1

如果记录可用,则在服务器端保留每条记录和属性的最后更新时间戳

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

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

于 2012-07-20T11:32:19.683 回答
0

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

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

于 2012-07-20T09:44:18.747 回答
0

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

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

于 2012-07-20T10:11:33.340 回答