继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Android实现批量添加联系人到通讯录

红颜莎娜
关注TA
已关注
手记 125
粉丝 17
获赞 65

二百多条记录差不多要七分钟
 
使用下面批量添加方法,不到两分钟

/**
  * 批量添加通讯录
  * 
  * @throws OperationApplicationException
  * @throws RemoteException
  */
 public static void BatchAddContact(List<Tb_contacts> list)
   throws RemoteException, OperationApplicationException {
  GlobalConstants.PrintLog_D("[GlobalVariables->]BatchAddContact begin");
  ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
  int rawContactInsertIndex = 0;
  for (Tb_contacts contact : list) {
   rawContactInsertIndex = ops.size(); // 有了它才能给真正的实现批量添加

   ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
     .withValue(RawContacts.ACCOUNT_TYPE, null)
     .withValue(RawContacts.ACCOUNT_NAME, null)
     .withYieldAllowed(true).build());

   // 添加姓名
   ops.add(ContentProviderOperation
     .newInsert(
       Android.provider.ContactsContract.Data.CONTENT_URI)
     .withValueBackReference(Data.RAW_CONTACT_ID,
       rawContactInsertIndex)
     .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
     .withValue(StructuredName.DISPLAY_NAME, contact.getName())
     .withYieldAllowed(true).build());
   // 添加号码
   ops.add(ContentProviderOperation
     .newInsert(
       android.provider.ContactsContract.Data.CONTENT_URI)
     .withValueBackReference(Data.RAW_CONTACT_ID,
       rawContactInsertIndex)
     .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
     .withValue(Phone.NUMBER, contact.getNumber())
     .withValue(Phone.TYPE, Phone.TYPE_MOBILE)
     .withValue(Phone.LABEL, "").withYieldAllowed(true).build());
  }
  if (ops != null) {
   // 真正添加
   ContentProviderResult[] results = mContext.getContentResolver()
     .applyBatch(ContactsContract.AUTHORITY, ops);
   // for (ContentProviderResult result : results) {
   // GlobalConstants
   // .PrintLog_D("[GlobalVariables->]BatchAddContact "
   // + result.uri.toString());
   // }
  }
 }

通过以上的对比,对于数据库效率就不一样了!

原文链接:http://www.apkbus.com/blog-459392-60283.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP