android联系人批量删除优化时间

android联系人批量删除时总要求效率要高,时间要快。可以对联系人分块删除。以下代码,看看有没有还需要优化的地方。

private static Object mLock = new Object();
	class DeleteContactsThread extends Thread{
		long[] mIds;
		String ids = "";
		int temp_con = 0;
		int divide_con = 0;
		public DeleteContactsThread(long[] ids){
			//Here we can also add wakelock
			mIds = ids;
		}
		public void run(){
			super.run();
			synchronized(mLock){
				int length = mIds.length;
				if(length >= 1500){
					divide_con = 200;
				}else if(length > 1000){
					divide_con = 100;
				}else if(length > 500){
					divide_con = 50;
				}else divide_con = 10;
				try{
					for(int i=0;i<length;i++){
						ids += mIds[i] + ",";
						temp_con++;
						if(temp_con == divide_con){
							ids +=mIds[i];
							getContentResolver().delete(RawContacts.CONTENT_URI,
									"contact_id in (" +ids + ")", null);
							mProgress.incrementProgressBy(divide_con);
							temp_con = 0;
							ids = "";
						}
					}
					if(temp_con != 0){
						ids +=mIds[length - 1];
						getContentResolver().delete(RawContacts.CONTENT_URI,
								"contact_id in (" +ids + ")", null);
						mProgress.incrementProgressBy(temp_count);
					}
				}finally{
					//do something.
				}
			}
		}
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值