java - 为什么 SyncAdapter 会创建一个默认的定期同步,即使我没有调用 addPeriodicSync()?

标签 java android android-syncadapter

我已经关注了 BasicSyncAdapter谷歌示例中的示例,我想知道为什么如果我 comment out the call to addPeriodicSync() function in the code 甚至会创建默认的定期同步(同步间隔 86400 秒或 24 小时) .

我发现没有任何文档表明创建 SyncAdapter 和 stub 代码(SyncService、Authenticator 帐户等)也会创建具有默认同步间隔的定期同步。

我的问题:是否可以在没有这种默认定期同步的情况下创建 SyncAdapter?

谢谢。

顺便说一句,这就是我检测是否存在周期性同步的方式。

java.util.List<PeriodicSync> periodicSyncsList = ContentResolver.getPeriodicSyncs(myaccount, CONTENT_AUTHORITY);
Log.d(TAG, "Number of syncs in the periodicSyncsList = " + periodicSyncsList.size());
for (PeriodicSync p : periodicSyncsList) {
    Log.d(TAG, p.toString());
}

最佳答案

我知道现在有点晚了,但我希望这个答案能对某人有所帮助。

我在这篇文章中找到http://blog.udinic.com/2013/07/24/write-your-own-android-sync-adapter在自动同步部分中,setSyncAutomatically 方法将隐式将定期更新设置为 24 小时。

因此,解决您的问题只是将以下方法调用中的最后一个参数更改为 false。

ContentResolver.setSyncAutomatically(account, CONTENT_AUTHORITY, false);

我在方法调用顺序方面遇到了类似的问题。这将导致定期同步间隔设置为 SYNC_FREQUENCY 的值。

ContentResolver.setSyncAutomatically(account, CONTENT_AUTHORITY, true);
ContentResolver.addPeriodicSync(account, CONTENT_AUTHORITY, new Bundle(),SYNC_FREQUENCY);

但是这个方法的调用顺序会导致24h的周期性同步间隔。

ContentResolver.addPeriodicSync(account, CONTENT_AUTHORITY, new Bundle(),SYNC_FREQUENCY);
ContentResolver.setSyncAutomatically(account, CONTENT_AUTHORITY, true);

注意它。

干杯

关于java - 为什么 SyncAdapter 会创建一个默认的定期同步,即使我没有调用 addPeriodicSync()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43515031/

相关文章:

java - 在 0.0.0.0 上启动自定义 JMX 服务器时出错

java - 为什么我的 jpql .getResultList() 返回 0 行以获得良好的查询

android - 为什么我们已经有了/data/dalvik-cache,还要把*.odex文件放在/system/app下?

android - 如何更改微调器文本颜色

android - NotificationManager 更新/隐藏来自 SyncAdapter 的通知(UI 线程外)

Android SyncAdapter 自动初始化同步

java - 对于一个实际的开发项目,多少个 "Eclipse Projects"被认为过多?

java - "Attempting to use an incompatible return type"接口(interface)继承

Java Tango支持 : Transforming several Cloud Point snapshots to the same space

android - Xamarin 安卓 : Will SyncAdapter ever expired during calling