мое приложение извлекает VCards как строки и объединяет все в большую строку через StringBuilder
public String getVcardStrings() throws Exception {
Cursor cursor = context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
StringBuilder builder = new StringBuilder();
if (cursor.moveToFirst()) ;
do {
String s = getVCardStringFromContact(cursor);
L.d("VCARD", s);
builder.append(s);
} while (cursor.moveToNext());
cursor.close();
L.d("VCARD", "Output: \n" + builder.toString());
return builder.toString();
}
Вывод каждого вызова getVCardAsString () правильный. Он содержит все данные. но вызов builder.toString () возвращает только данные vcard 1,5 контактов, что составляет около 4 КБ текстовых данных, а остальное просто отсутствует!
Нет никаких исключений, и я читал, что емкость StringBuilders теоретически достигает 4 ГБ. Теперь у меня вопрос, что здесь происходит?