5

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

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

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

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

我想将 SyncResults 发送到某个实体(即 SyncManager),该实体跟踪此类事物以进行挂起、回收等。

我错过了什么?

4

2 回答 2

10

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

这是设置 SyncResult 的示例。我只是用它来设置统计字段中的异常数量。然后我看到的结果是,在“帐户和同步”屏幕中为该同步项目显示了一个错误图标。

于 2011-06-21T14:38:09.587 回答
1

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

于 2011-05-02T06:53:09.587 回答