android 后台同步应该怎么做

2014-10-09 17:06:48 +08:00
 ufo22940268
现在想做的事情就是在适当的时机把本地的数据同步到服务器上去。

比较想要的是用户在退出应用之后,然后系统空闲的时候进行同步操作。但是不知道该如何触发。

https://www.evernote.com/shard/s55/sh/99d3499f-36c4-47ed-a919-7003bc627b6e/c873bc95eb99e39c5048e6c73ab9c89b
之前用了这个,但是发现效果不理想。
10835 次点击
所在节点    Android
16 条回复
kmvan
2014-10-09 17:13:25 +08:00
开个service,想怎么触发就怎么触发...

(胡说的,没学过安卓开发:)
ufo22940268
2014-10-09 17:15:04 +08:00
@kmvan 触发条件怎么监听呢
pimin
2014-10-09 17:43:37 +08:00
轮询用户最后一次操作到现在到时间超过xx分钟同步?
kmvan
2014-10-09 17:49:17 +08:00
空闲的时候,也就是关闭屏幕后几关钟吧。熄屏后用户没操作,所以一次熄屏同步一次就可以了。。。
porrat
2014-10-09 17:54:53 +08:00
看文档,AlarmManager/BroadcastReceiver+Service可以实现指定事件/事件启动后台任务
glasssky001
2014-10-09 18:14:21 +08:00
phlips5437
2014-10-09 20:21:56 +08:00
lz你收到我iMessage没。。。。想问下你的apple tv还在吗
ufo22940268
2014-10-09 22:49:01 +08:00
@phlips5437
发我邮件吧
allan1st
2014-10-09 23:21:59 +08:00
SyncAdapter
allan1st
2014-10-09 23:36:26 +08:00
补充一下:lz 可以考虑下是否真的需要在退出之后才进行同步?比方说一定要有 wifi?耗电太大一定要插入电源?还是这个后台的同步会极大的影响 UI 的流畅度?
都考虑好了以后可以看下新的 L 提供的 android.app.job.JobScheduler
https://developer.android.com/preview/api-overview.html#Power
不急的话可以等一个月。
tolbkni
2014-10-09 23:43:37 +08:00
@glasssky001
@allan1st +1
还可以设置同步周期
ufo22940268
2014-10-10 09:14:31 +08:00
@allan1st SyncAdapter是不是固定格式的。你有用过吗

因为现在的情况是我们这边服务器同步的格式和逻辑已经定好了
allan1st
2014-10-10 14:37:45 +08:00
@ufo22940268 什么叫做服务器的格式和逻辑已经订好了?服务器不是为了客户端服务的吗?而且sycadapter只是一个组件,你要同步什么数据什么格式都是你自己写的,不太能理解你说的固定格式。还有,lz为什么一定要延迟同步,建议考虑考虑用户关机了或者没有信号的情况。
ufo22940268
2014-10-10 14:42:46 +08:00
@allan1st 今天看了下syncadapter的 sample,发现它和服务器传输的数据格式是 xml,但是我们现在和服务器通信的格式是 json。

所以我就猜 syncadapter 是要在特定的框架下才能够使用的。去 so 上搜索出来发现别人也是把本地数据和 google cloud 数据进行同步的时候才使用的。


你们在使用 syncadapter 进行同步吗
allan1st
2014-10-10 15:27:45 +08:00
@ufo22940268 你想用什么格式都可以啊,你youtube搜搜google io 2010。有个胖子做了个讲座的,好像叫 REST Client 什么的。
tolbkni
2014-10-10 20:55:38 +08:00
@ufo22940268 演示用 XML,不代表你实现不能用其他格式,JSON 甚至自定义格式都可以。

我们用 SyncAdapter 做定期同步,请求服务器 API 获得 JSON 格式的数据然后保存到数据库。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/137850

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX