最佳答案
我正在尝试实现 谷歌 IO-幻灯片26中讨论的 Content-Provider-Sync Adapter 模式。我的内容提供程序正在工作,当我从 Dev Tools Sync Tester 应用程序触发它时,我的同步工作正常,但是当我从 ContentProvider 调用 ContentResolver.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 的帐户是“ myaccount 类型”,传递给调用的 AUTHORITY 与我的 syc 适配器 xml 匹配。
Is ContentResolver.requestSync the correct way to request a sync? It looks like the sync tester tool binds directly to the service and calls start sync, but that seems like it defeats the purpose of integrating with the sync architecture.
如果这是请求同步的正确方式,那么为什么同步测试工作,而不是我对 ContentResolver.requestSync 的调用呢?包裹里有什么东西要递给我吗?
我正在模拟器中测试运行2.1和2.2的设备。