【问题标题】:infinite sync loop syncadapter无限同步循环同步适配器
【发布时间】:2013-07-25 13:29:42
【问题描述】:

我也有同样的问题:Android SyncAdapter stuck in infinite sync loop

但是在尝试在onPerformSync中实现notifychange(Uri uri, ContentObserver observer, boolean syncToNetwork)后,我意识到我不知道如何获取我需要的ContentObserver(在main Activity中定义并传入)

有什么建议吗?

编辑 1:

喜欢这个人First time sync loops indefinitely

我发现 ContentResolver.cancelSync(account, authority);也可以,但是如果有人有更好的解决方案...请告诉我!

编辑 2:

我听从了这篇帖子Android SyncAdapter Automatically Initialize Syncing的建议

在调试器逐步完成后,我确认 SyncToNetwork 在传递给 notifyChange 时绝对是错误的,但无限同步在没有 cancelSync 的情况下继续......仍然没有永久解决方案

【问题讨论】:

    标签: android android-syncadapter


    【解决方案1】:

    前段时间,当我刚刚涉足 Android 编程时,我问了这个问题,我想我会与任何好奇的人分享我的发现。当我按照教程实现自定义 ContentProvider 时,我看到在 update()、insert() 和 delete() 方法之后使用了 notifyChange (Uri uri, ContentObserver observer)。什么都不知道,我还在我的 ContentProvider 中调用了notifyChange。这导致了我无法弄清楚的无限同步循环等问题。有一个重载方法:notifyChange (Uri uri, ContentObserver observer, boolean syncToNetwork),我当时就知道,但我永远无法弄清楚如何使用它,因为我的 notifyChange 正在我的 ContentProvider 中被调用。这实际上是一个简单的修复。我所要做的就是不在我的 ContentProvider 中调用 notifyChange (uri, null, false),而是在通过 ContentResolver getContentResolver().insert() 等调用这些方法之后。

    我希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 2014-07-06
      • 2015-09-13
      • 1970-01-01
      • 2013-11-24
      相关资源
      最近更新 更多