我已将SyncAdapter添加到我的应用程序中,该应用程序将数据从服务器同步到Android中的sqlite数据库。我正在使用存根ContentProvider
。我为我的syncAdapter启用了setSyncAutomatically
和addPeriodicSync
。我已将定期同步间隔设置为15分钟。
问题虽然大部分时间都能完美运行但有时我的应用程序开始重复同步,例如2-3一个接一个地同步。
我认为这可能是由于使用了setSyncAutomatically
,但如果我将其删除,那么我就可以手动转到设置并启用我的应用程序的自动同步。
我的代码 -
ContentResolver.setIsSyncable(newAccount, Constant.AUTHORITY, 1);
ContentResolver.setSyncAutomatically(newAccount, Constant.AUTHORITY, true);
ContentResolver.addPeriodicSync(newAccount, Constant.AUTHORITY, new Bundle(), Constant.SYNC_FREQUENCY);
有没有办法可以为syncAdapter设置最小间隔,以便在此时间间隔之前不会再次执行?
答案 0 :(得分:0)
没有最小同步间隔,但您可以自己跟踪。如果尚未通过最小间隔,只需存储上次同步时间并退出同步适配器而不同步。
然而,正确的解决方案是找出为什么首先触发这些额外的同步。
使用setSyncAutomatically()
启用自动同步意味着只要内容提供商使用ContentResolver.notifyChange(...)
发布更改通知且syncToNetwork
参数设置为true
,Android就会触发同步。您应该确保从未将此参数设置为true
以进行同步适配器所做的更改。