में कई संपर्कों को जोड़ें मैं पूरी तरह से संपर्क निम्न कोड के साथ एक के बाद एक जोड़ने के लिए सक्षम हूँ:बैच
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 संपर्कों को एक जोड़ने की कोशिश - यह कुछ ही मिनट लगते है, जो मेरे ऐप के लिए बहुत लंबा क्या कई संपर्क जोड़ने का कोई तेज़ तरीका है?
आप उन्हें थ्रेड में जोड़ सकते हैं - यूआई थ्रेड नहीं। – Phil
मैं इसे अलग थ्रेड में करता हूं, समस्या यह है कि ऑपरेशन में बहुत अधिक समय लगता है। आईफोन में 500 संपर्कों के लिए कुछ सेकंड लगते हैं। – lstipakov
मैं इसे इसी तरह से करता हूं, हालांकि मैं हर बार बैच करता हूं जब मैं एक संपर्क जोड़ना चाहता हूं। मुझे नहीं लगता कि यह सही तरीका है, लेकिन ऐसा लगता है कि –