Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SyncAdapter不会自动同步_Android_Android Contentprovider_Android Syncadapter - Fatal编程技术网

Android SyncAdapter不会自动同步

Android SyncAdapter不会自动同步,android,android-contentprovider,android-syncadapter,Android,Android Contentprovider,Android Syncadapter,我知道自动同步发生在内容修改后30秒。观察logcat的时间更长,这证明自动同步不会发生。至少,不适用于我的自定义SyncAdapter 用户提供者: <provider android:name="nl.providers.UserProvider" android:authorities="nl.providers.UserProvider" android:enabled="true" android:label="Users" /> <sync-a

我知道自动同步发生在内容修改后30秒。观察logcat的时间更长,这证明自动同步不会发生。至少,不适用于我的自定义SyncAdapter

用户提供者:

<provider android:name="nl.providers.UserProvider" 
    android:authorities="nl.providers.UserProvider" 
    android:enabled="true" android:label="Users" />
<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);

我错过什么了吗?或者有人能给我更多关于这个主题的信息来帮助我搜索吗?

我能想到的原因是:

1) 您没有为该SyncAdapter添加帐户(在帐户和同步中执行此操作)


2) 设备上没有internet连接

同步发生时没有设置时间延迟。根据设备上的其他活动,它可能早或晚

仅仅修改内容是不够的。您正在调用notifyChange()? 例如,在插入、更新或删除后,在ContentProvider中:

getContext().getContentResolver().notifyChange(rowUri, null, true);
还要确保在设备或模拟器上的帐户和同步设置中,您正在测试的同步实际上已启用


希望这对某人有所帮助:)

检查系统帐户设置是否存在任何同步错误。如果您的同步在同步结果统计数据中添加了异常,则可能会发生这种情况,这可能会导致重新同步的等待时间更长。您还可以使用菜单中的“立即同步”进行测试。

原因可能是您正在设置
android:supportsupload=“false”
,需要将其设置为
true
,如
android:supportsupload=“true”
,然后适配器可以与网络同步

[StackOverflow:为什么ContentResolver.requestSync不触发同步?][1]提供了排队以启动同步所需的所有步骤。[1]:谢谢,.notifyChange()是我在网络状态更改时自动启动同步所缺少的。