我构建了一个需要将2000个联系人导出到原生Android联系人的应用程序。我使用contentresolver.applyBatch来实现这一点,但如果用户注销我想删除所有导出的联系人的应用程序。内容解析器可能会因保存联系人而未完全完成。
我的问题:
如何取消以下操作?:
resolver.applyBatch(ContactsContract.AUTHORITY, ops);
到目前为止我尝试过的事情:
我试图取消内容解析器的同步,如下所示:
ContentResolver.cancelSync(null, ContactsContract.AUTHORITY);
这不起作用,我也不确定空值。它说它需要一个帐户来停止同步它。但是我没有在特定帐户上启动同步,为什么需要它?
我需要什么?
像resolver.stopBatch(一种停止应用批次的方法)的东西。
感谢您在阅读本文时付出的所有努力。
答案 0 :(得分:1)
如果我了解用例,当用户登录您的应用时,您就会在新 RawContacts
中同步到设备中。
如果是这种情况,您应该创建一个SyncProvider
,并将其与RawContacts同步,该帐户与您的应用和套餐名称相关联。
这样,当用户卸载您的应用时,该帐户会自动与您已同步到设备中的数据一起被删除,当用户退出帐户时,您只需以编程方式删除联系人帐户,这也是删除同步到设备的所有数据。
阅读这些有关如何创建联系人帐户的教程,SyncProvider
并使用它来同步您帐户中的联系人: