我完全能夠通過一個與下面的代碼添加聯繫人之一:添加多個聯繫人批量
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個聯繫人之一 - 它需要幾分鐘的時間,這是我的應用程序太長。添加多個聯繫人的方法是否更快?
你可以添加他們在一個線程 - 而不是UI線程。 – Phil
我在單獨的線程中執行它,問題在於操作本身需要太多時間。在iPhone中,500個聯繫人需要幾秒鐘的時間。 – lstipakov
我以類似的方式執行此操作,但每次我要添加聯繫人時都會執行批處理。我不認爲這是正確的方式,但它似乎工作沒關係 –