如何向Android SyncManager发送sync-complete信号?

mob*_*bob 5 android android-syncadapter

我在我的SyncAdapter中使用了cancelRequest(),就在它退出线程之前,但我决定只打算用另一个想要取消正在进行同步的实体(UI)(花太长时间,哎呀,等等.)

现在我的同步认为总有一个待处理请求 - 我用它来忽略新请求.

我要做的另一件事是Service中的侦听器线程正在侦听ContactsContract.AUTHORITY的更改,以便它可以启动我的聚合的同步.

更新:此侦听器线程正在泄漏.当我完成它时,我发出了一个.stop(),然而,我认为有一个处理程序可以保持活动并使服务停止运行.

我想将SyncResults发送到一些实体(即SyncManager),它跟踪这些事情以进行待处理,回收等.

我错过了什么?

max*_*r47 10

用一个例子详细说明shunty的答案:

以下是设置SyncResult 的示例.我只是用它来设置stats字段中的例外数量.我看到的结果是在帐户和同步屏幕中显示该同步项的错误图标.

  • 好的 - 我的困惑(关注)是设置SyncResult,这是一个"输入"参数,副作用编程.我希望在我的onPerformSync结束时,我可以将SyncResult发送到SyncManager或CP等,以便记录它. (2认同)

shu*_*nty 1

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