如何取消contentresolver applyBatch?

时间:2017-05-31 13:54:08

标签: android android-contacts android-contentresolver

我构建了一个需要将2000个联系人导出到原生Android联系人的应用程序。我使用contentresolver.applyBatch来实现这一点,但如果用户注销我想删除所有导出的联系人的应用程序。内容解析器可能会因保存联系人而未完全完成。

我的问题:

如何取消以下操作?:

resolver.applyBatch(ContactsContract.AUTHORITY, ops);

到目前为止我尝试过的事情:

我试图取消内容解析器的同步,如下所示:

ContentResolver.cancelSync(null, ContactsContract.AUTHORITY);

这不起作用,我也不确定空值。它说它需要一个帐户来停止同步它。但是我没有在特定帐户上启动同步,为什么需要它?

我需要什么?

像resolver.stopBatch(一种停止应用批次的方法)的东西。

感谢您在阅读本文时付出的所有努力。

1 个答案:

答案 0 :(得分:1)

如果我了解用例,当用户登录您的应用时,您就会在 RawContacts中同步到设备中。

如果是这种情况,您应该创建一个SyncProvider,并将其与RawContacts同步,该帐户与您的应用和套餐名称相关联。 这样,当用户卸载您的应用时,该帐户会自动与您已同步到设备中的数据一起被删除,当用户退出帐户时,您只需以编程方式删除联系人帐户,这也是删除同步到设备的所有数据。

阅读这些有关如何创建联系人帐户的教程,SyncProvider并使用它来同步您帐户中的联系人: