gpt4 book ai didi

Android 的 ContentResolver.isSyncActive 在实际同步结束之前返回 false

转载 作者:太空狗 更新时间:2023-10-29 14:59:18 26 4
gpt4 key购买 nike

我通过调用 ContentResolver.requestSync 使用 SwipeRefreshLayout 的 onRefresh 方法触发与 REST 服务的同步,这将启动我的 Syncadapter。Syncadapter 然后使用 Volley 的请求与服务器通信。

为了检测同步操作的结束并关闭 Activity 指示器,我在我启动同步的 fragment 的 SyncStatusObserver 中使用了 ContentResolver.isSyncActive。

问题是 ContentResolver.isSyncActive 在与服务器的实际同步结束之前返回 false,导致 Activity 指示器几乎立即消失。

我是否正确地假设 Volley 的请求的异步性质导致 SyncAdapter 的 onPerformSync 立即返回,这反过来又使 ContentResolver 认为同步已经结束?

如果是,这里正确/推荐的解决方案是什么?我可以想出变通办法,但想确保我没有遗漏一些明显的东西。

我查看了很多示例,包括 iosched、swiperefresh、basicsyncadapter 等,但它们似乎都“保持”onPerformSync 方法,直到一切结束。

谢谢

最佳答案

您应该使请求在 onPerformSync 方法内同步执行。我使用 Retrofit 进行后端调用,但我认为 Volley 也应该提供同步功能。

关于Android 的 ContentResolver.isSyncActive 在实际同步结束之前返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28512327/

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