android 通讯录 编程,以编程方式批量添加数千个Android联系人
使用ContentResolver.applyBatch和ContentResolver.bulkInsert方法一次性添加数千个联系人非常慢.
Android是否提供了批量添加联系人的不同方式,这种方式会更快?
到目前为止,我尝试了以下方法:
使用applyBatch(每千个联系人约75秒)
对于每个联系人:
>创建一个新的ContentValues对象以表示原始联系人
>构建一个新的ContentProviderOperation以将其插入到RawContacts表中
>将此操作添加到列表并存储其索引
>为名称和电话号码等其他联系人字段创建ContentValues对象
>构建一个新的ContentProviderOperation,将其中的每一个插入到Data表中,并对原始联系人插入操作进行反向引用
>将这些操作添加到列表中
最后,使用ContentResolver.applyBatch应用所有操作.
使用bulkInsert(每千个联系人约40秒)
对于每个联系人:
>创建一个新的ContentValues对象以表示原始联系人
>构建一个新的ContentProviderOperation以将其插入到RawContacts表中
>将此操作添加到列表中
然后,使用ContentResolver.applyBatch应用所有操作.这将返回ContentProviderResults数组.
现在,对于每个联系人:
>从相应的ContentProviderResult中解析原始联系人ID.
>为联系人的所有数据字段构造一个ContentValues对象数组,每个数据字段都包含原始联系人ID的字段
>使用ContentResolver.bulkInsert将这些插入到数据表中
问题
>在第二种方法中,我首先对RawContacts表条目执行applyBatch,然后为所委托的Data表执行bulkInsert.这是因为我无法想办法为数据条目提供原始联系人ID.是否有类似于bulkInsert的反向引用,允许我同时添加RawContacts和Data条目?
> applyBatch和bulkInsert只能在抱怨事务太大之前在一个批处理中执行这么多插入.因此,每隔500个联系人就必须应用它们.有没有办法改变这个限制?
>是否有一些完全不同的,更快速的方式一次添加数千个联系人?
android 通讯录 编程,以编程方式批量添加数千个Android联系人相关推荐
- springboot执行批量插入_springboot+Mybatis 注解\Xml两种方式批量添加数据
1.使用注解的方式批量添加数据,在该方法中,传进来的参数是一个List集合,使用一个foreach 循环解析集合的数据,最后再批量保存到数据库,具体如下截图: 代码如下: //批量保存 @Insert ...
- 利用zabbix api批量添加数百台监控主机
利用zabbix api批量添加监控主机 在公司规模很庞大的时候,每次都手动添加监控主机将会很麻烦,我们可以利用zabbix的api去批量添加监控主机 本次我们将实现用一台主机虚拟出100台主机,并通 ...
- android+主界面所有应用程序图标添加统一背景主题,Android 4.0替Launcher主界面所有应用程序图标添加统一背景主题...
当前位置:我的异常网» Android » Android 4.0替Launcher主界面所有应用程序图标添加 Android 4.0替Launcher主界面所有应用程序图标添加统一背景主题 www. ...
- android gdx 放进布局,将LibGDX添加到现有的Android Studio项目中
将LibGDX添加到现有Android Studio项目的最佳方法是什么? 因为Android Studio已经内置了Gradle,所以我假设可以更改build.gradle文件中的某些代码以将Lib ...
- 通过WordPress内置函数批量添加文章
http://www.php.cn/blog/detail/2482.html 最近业务需要在网站上批量添加大量的文章.一篇一篇地手动添加绝对会搞死我,所以,我就开始寻找批量添加的方法.其实,文章的相 ...
- android+双卡imei,以编程方式在Android中为双SIM卡检索IMEI号码
对于单个SIM,以下代码有效: TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); String ...
- Android 反射 换一种方式编程
Android 反射-换一种方式编程 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/59109933 本文出自[赵彦军的博客] 上一 ...
- 如何在Android按钮上以编程方式设置drawableLeft?
本文翻译自:How to programmatically set drawableLeft on Android button? I'm dynamically creating buttons. ...
- Android批量添加联系人到通讯录
由于工作上的需要,把数据库中备份的联系人添加到通讯录,一般都有几百条记录,插入一条数据系统默认commit一次,这样效率就降低了,如果把所有的数据都添加进去后再commit效率就不一样,这就需要事务 ...
最新文章
- ValueError: The data property of a figure may only be assigned a list or tuple that contains a .....
- python生日贺卡制作以及细节问题的解决最后把python项目发布为exe可执行程序过程
- Python ndarray.strides用法
- 第九天2017/04/18(1、友元函数、运算符重载)
- 转: 基于elk 实现nginx日志收集与数据分析
- Qt (5.10.0)for android
- 『转载』hadoop2.x常用端口、定义方法及默认端口
- 【华为云技术分享】使用Python连接Kerberos的Presto
- 基于spi FLASH的嵌入式文件系统 littlefs(转)
- “Hyperledger Fabric 是假区块链!”
- 单向关系中的JoinColumn
- 从一句SQL得出的启示
- Android MediaPlayer 属性
- Java打印菱形(一)
- 【AD封装】电感(带3D)
- 灰色关联分析与预测模型
- python使用phone实现手机号归属地查询
- GB与BIG5内码转换COM原代码
- 香港美国CERA机房你怎么选择?
- 亚洲及中国全国境内雷电闪电数据采集程序服务部署+接口调用说明