回答:由于其实能够work网络
sync adapter就是google推出的一个同步框架,把各类同步操做放在一块儿智能管理比较省电之类的。对我而言最具体的好处反正就是,不用本身写代码了,用框架就能够了。目前的代码基本照抄官方文档。框架
然而呢,用框架知其然不知其因此然更头疼。ide
用sync adapter首先须要一个dummy authenticator,不过authenticator咱们以后反正也会用的。真的很是高兴google连authenticator都帮咱们写好了……咱们以前还有考虑怎么写authenticator。ui
而后须要一个dummy content provider,我不知道咱们会不会用content provider...反正先用了一个dummy的。想来你们都在一个线程里工做应该也用不上吧?谁知道呢说不定后面写着写着就用上了,反正尽可能不要再改给ui的接口就行了。google
而后就是用content resolver设置同步就能够了。这里遇到了两个问题。线程
第一个问题是request sync,即手动同步,不能work。我在SyncAdapter类里的onPerformSync方法里(sync的时候会调用这个方法)加了一个log,可是根本看不见这个log。用debug也并无什么用。debug
一开始我抄官方文档的代码的时候,有两个设置选项我没看懂、觉得不须要,因此就没有加入。因而我将这两个选项加入了,而且去看了看它们的解释。ContentResolver.SYNC_EXTRAS_EXPEDITED是将当前的sync请求放在请求队列的第一位,从而优先执行,不过由于我没有其余的sync请求因此这个选项没有那么大意义。ContentResolver.SYNC_EXTRAS_MANUAL是忽略其余设置、强行执行sync,可是并无太看懂其余设置指的是什么,可能就是忽略若是没有网络就不sync之类的设置吧。日志
然而加入后仍是没有现象。后来在stackoverflow上看到解答,SyncAdapter的工做是在另外一个线程上,因此在log的时候要选择no filter才能看到这个log。恍然大悟,果真ok了。orm
第二个问题是periodic sync,即定时同步,在以前的基础上仍是不能work。接口
这个也是我傻,我看官方文档上说minimum interval(最小时间间隔)是15min,结果给我当作了maximum interval(最大时间间隔),还以为十分难以想象。所以我想设置每秒一次确定是不可能的了。(其实也只是为了观察现象,我才不想为了观察一个日志输出等上15min)。
因此,官方文档老是能work的,但不必定会把各类坑讲清楚,仍是要刷stackoverflow。