无限同步循环syncadapter

时间:2013-07-25 13:29:42

标签: android android-syncadapter

我遇到了同样的问题:Android SyncAdapter stuck in infinite sync loop

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

任何提示?

编辑1:

喜欢这个人First time sync loops indefinitely

我发现ContentResolver.cancelSync(帐号,权限);也会工作,但如果有人有更好的解决方案......请告诉我!

编辑2:

我遵循了这篇文章Android SyncAdapter Automatically Initialize Syncing

的建议 在使用调试器后,我确认SyncToNetwork在传递给notifyChange时肯定是假的,但是无限同步在没有cancelSync的情况下继续...仍然没有永久的解决方案

1 个答案:

答案 0 :(得分:2)

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

我希望这有助于某人。