Utt*_*sed 5 android android-contentresolver android-contacts
使用ContentResolver.applyBatch和ContentResolver.bulkInsert方法一次性添加数千个联系人非常慢。Android是否提供另一种方式来批量添加联系人,而这种方式会更快呢?
到目前为止,我已经尝试了以下方法:
使用applyBatch(每千个联系人约75秒)
对于每个联系人:
最后,使用ContentResolver.applyBatch来应用所有操作。
使用bulkInsert(每千个联系人约40秒)
对于每个联系人:
然后,使用ContentResolver.applyBatch应用所有操作。这将返回一个ContentProviderResults数组。
现在,对于每个联系人:
问题
您展示的第一种方法是正确的方法,除了比第二种方法更快之外,它也更安全。
当您在同一个批处理操作中插入两者时RawContacts,Data如果在此过程中出现问题,数据库将回滚该批处理之前的更改,这样您就不会在两个表中留下任何僵尸信息。
为了加快速度,请尝试在不同线程之间划分工作。
如果您有 1000 个联系人,请创建一个线程来处理前 500 个联系人,并创建另一个线程来处理后 500 个联系人,并让它们同时运行。如果需要,您可以将其应用到更多线程。
| 归档时间: |
|
| 查看次数: |
580 次 |
| 最近记录: |