gpt4 book ai didi

java - 批量添加多个联系人

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:45:54 24 4
gpt4 key购买 nike

我完全可以使用以下代码一个接一个地添加联系人:

    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();
}

但是,当我尝试一个接一个地添加大约 500 个联系人时 - 这需要几分钟时间,这对我的应用来说太长了。添加多个联系人有没有更快的方法?

最佳答案

为什么不将 arraylist 设为可从任何 Activity 访问的全局列表我不会将那么多插入 Bundle 中,因为当您这样做时会有更多事情发生,它只是为了传递少量信息。我会这样做,确保也在 list 中调用它..

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;
}

关于java - 批量添加多个联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7123259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com