我了解自动同步发生在内容修改后30秒。观察logcat的脂肪更长,然后证明自动同步不会发生。至少,不是我的自定义SyncAdapter。
UserProvider:
<provider android:name="nl.providers.UserProvider"
android:authorities="nl.providers.UserProvider"
android:enabled="true" android:label="Users" />
UserSyncAdapter:
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="nl.providers.UserProvider"
android:accountType="nl.account"
android:supportsUploading="false"
android:userVisible="true" />
发射器:
ContentResolver.setIsSyncable(account, "nl.providers.UserProvider", 1);
ContentResolver.setSyncAutomatically(account, "nl.providers.UserProvider", true);
我错过了什么吗?或者,任何人都可以向我提供有关该主题的更多信息以帮助我进行搜索吗?
答案 0 :(得分:3)
同步发生时没有设定的时间延迟。它可能迟早取决于设备上的其他活动。
修改内容是不够的。你在调用notifyChange()吗? 例如,在插入,更新或删除后的ContentProvider中:
getContext().getContentResolver().notifyChange(rowUri, null, true);
另外请确保在您的帐户&amp;您正在测试实际启用同步的设备或模拟器上的同步设置。
希望能帮助某人:)
答案 1 :(得分:0)
我能想到的原因:
1)您没有为该SyncAdapter添加帐户(在帐户和同步中执行此操作)
2)您的设备上没有互联网连接
答案 2 :(得分:0)
检查系统帐户设置是否存在任何同步错误。如果您的同步向同步结果统计信息添加了例外,则可能会出现这些情况,这可能导致其等待更长时间再次同步。您也可以使用菜单中的“立即同步”进行测试。
答案 3 :(得分:0)
原因可能是因为您设置的是android:supportsUploading="false"
,您需要将其设置为true
,例如android:supportsUploading="true"
,然后适配器就可以与网络同步。