Пакетное добавление нескольких контактов

Я прекрасно могу добавлять контакты по одному с помощью следующего кода:

    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 контактов один за другим - это занимает несколько минут, что слишком долго для моего приложения. Есть ли более быстрый способ добавить несколько контактов?

6
задан lstipakov 19 August 2011 в 14:42
поделиться