【Android】【功能设计】离线数据同步方案

这里考虑的是本地数据不会被其它用户修改的情况,类似于微信,离线任务都是自己要发出的消息,不会和网络数据产生冲突
对于多个离线用户,同时修改同一份数据的情况,不适合使用此方案,大多时候也不允许离线使用

查询数据
有网的情况下,从网络下载数据
以网络作为最新版本的情形:清空本地数据,将网络数据存储到数据库
以本地作为最新版本的情形:本地不存在Id则插入到数据库,本地存在则跳过
对于实时性不高的数据,也可以放在后台定期查询

新增,修改,删除
只适合以本地作为最新版本,否则会造成数据同步混乱
如果要以网络作为最新版本,要强制在线使用,不能使用离线模式
不管有无网络,将数据变动直接提交到数据库,并按时间和任务类型保存到离线任务
开启后台服务,有网络时上传离线任务

数据库中应该包括Id和OfflineId两个字段,因为离线数据是没有Id的,在线数据是没有OfflineId的
将网络数据插入数据库时,分配一个OfflineId,这样OfflineId永远非空,就可以作为主键

总结来说,这个方案只需操作数据库,将离线操作保存到后台任务提交,必要时才将查询数据插入数据库
各个步骤之间都是独立的,不会出现混乱关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值