gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 00:35:15 26 4
gpt4 key购买 nike

我已经关注了 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com