为了账号安全,请及时绑定邮箱和手机立即绑定

为什么ContentResolver.requestSync不触发同步?

为什么ContentResolver.requestSync不触发同步?

月关宝盒 2019-10-05 11:10:27
我正在尝试实现Google IO-幻灯片26中讨论的Content-Provider-Sync Adapter模式。我的内容提供程序正在运行,当我从Dev Tools Sync Tester应用程序触发它时,我的同步起作用,但是当我调用ContentResolver时。来自ContentProvider的requestSync(帐户,授权,捆绑),我的同步从未触发。ContentResolver.requestSync(        account,         AUTHORITY,         new Bundle());编辑-添加清单清单我的清单xml包含:<service    android:name=".sync.SyncService"    android:exported="true">    <intent-filter>        <action            android:name="android.content.SyncAdapter" />    </intent-filter>    <meta-data android:name="android.content.SyncAdapter"    android:resource="@xml/syncadapter" /></service>- 编辑与我的同步服务关联的syncadapter.xml包含:<?xml version="1.0" encoding="utf-8"?><sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"      android:contentAuthority="AUTHORITY"    android:accountType="myaccounttype"    android:supportsUploading="true"/>不知道其他什么代码会有用。传递给requestSync的帐户是“ myaccounttype”,并且传递给调用的AUTHORITY匹配我的syc适配器xml。ContentResolver.requestSync是否是请求同步的正确方法?看起来好像同步测试器工具直接绑定到服务并调用开始同步,但这似乎违反了与同步体系结构集成的目的。如果这是请求同步的正确方法,那么为什么同步测试器会起作用,而不是我对ContentResolver.requestSync的调用?我需要通过捆绑销售商品吗?我正在运行2.1和2.2的设备上的模拟器中进行测试。
查看完整描述

3 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

我正在使用setIsSyncableAccountManager setAuthToken方法。但是setAuthToken之前setIsSyncable达到了返回的功能。更改订单后,一切正常!


查看完整回答
反对 回复 2019-10-05
?
萧十郎

TA贡献1815条经验 获得超13个赞

我什么都不知道,但是设备会记住它需要同步,并且一旦打开全局同步,它就会启动。您真的不应该尝试在这一点上胜过用户-尤其是在极端情况下,“关闭全局同步”是节省电池电量的关键方法之一。如果您真的担心数据无法同步,请考虑一个弹出窗口,告诉用户为什么数据一直处于静止状态(如果已经放置了一段时间)。这样,您可以教育意外配置其设备的用户,并提醒高级用户万一他们忘记了。

查看完整回答
反对 回复 2019-10-05
  • 3 回答
  • 0 关注
  • 637 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信