lst*_*kov 6 java android contacts android-contentprovider
我完全可以使用以下代码逐个添加联系人:
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null).build());
ops.add(ContentProviderOperation
.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
.withValue(Data.MIMETYPE,
CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.GIVEN_NAME, "Hello")
.withValue(StructuredName.FAMILY_NAME, "World").build());
try {
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OperationApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试逐个添加大约500个联系人时 - 它需要几分钟,这对我的应用来说太长了.是否有更快的方式添加多个联系人?
为什么不将数组列表设置为可以从任何活动访问的全局数组列表,我不会在捆绑包中插入那么多内容,因为当您这样做时会发生更多事情,它只是为了传递少量信息。我会这样做,确保也在清单中调用它..
public class MyStates extends Application {
private ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
public ArrayList getList() {
return this.blueToothAdapter;
}
public void setList(ArrayList<ContentProviderOperation> o) {
this.ops= o;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
802 次 |
| 最近记录: |