如何向Android SyncManager发送同步完成信号?

如何向Android SyncManager发送同步完成信号?,android,android-syncadapter,Android,Android Syncadapter,在SyncAdapter退出其线程之前,我在SyncAdapter中使用了cancelRequest(),但后来我决定它只供另一个实体(UI)使用,该实体(UI)希望取消正在进行的同步(耗时太长、oops等) 现在我的sync认为总是有一个挂起的请求,我用它来忽略新的请求 我要做的另一件事是服务中的侦听器线程,它正在侦听对contacts contract.AUTHORITY的更改,以便启动聚合的同步 更新:此侦听器线程正在泄漏。当我处理完它时,我会发出一个.stop(),但是,我认为有一个处理

在SyncAdapter退出其线程之前,我在SyncAdapter中使用了cancelRequest(),但后来我决定它只供另一个实体(UI)使用,该实体(UI)希望取消正在进行的同步(耗时太长、oops等)

现在我的sync认为总是有一个挂起的请求,我用它来忽略新的请求

我要做的另一件事是服务中的侦听器线程,它正在侦听对contacts contract.AUTHORITY的更改,以便启动聚合的同步

更新:此侦听器线程正在泄漏。当我处理完它时,我会发出一个.stop(),但是,我认为有一个处理程序保持活动状态并阻止服务停止

我想将SyncResults发送给某个实体(即SyncManager),该实体会跟踪挂起、回收等情况


我缺少什么?

您可以使用此类将同步操作的结果传递给SyncManager。根据此处的值,SyncManager将确定同步的配置,以及是否需要在将来安排新的同步操作

以示例详细说明Dutchy的答案:


下面是设置SyncResult的示例。我只是用它来设置stats字段中的异常数。我看到的结果是,在Accounts&sync屏幕中,该同步项目显示了一个错误图标

好的,文档是模糊的,查看谷歌资源并不是很有启发性。我已经寻找了将这个类与SyncAdapter一起使用的示例代码,但没有成功。你能展示一些示例代码吗?我可以实例化和修改,但我不知道如何与帐户关联并发送给SyncManager?这有意义吗?我已经尝试在我的应用程序中设置SyncResult,但没有看到效果。好的-我的困惑(担心)是设置SyncResult,这是一个“输入”参数,会对编程产生副作用。我希望在onPerformSync结束后,我可以将SyncResult发送给SyncManager或CP等进行记录。我同意,这是一件糟糕的事情,但这就是它在这里的设计用途。