Как использовать Курсор?Строка завершилась неудачно, поэтому верните учет новой строки из allocRowSlot - PullRequest
0 голосов
/ 01 марта 2012
   Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
....

 public void onClick(View v) {
                    Cursor cursor =  managedQuery(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
                    int count = cursor.getCount();
                    //cursor.close();
                    tvContactCount.setText("Count: " + count);
                }

При нажатии я получаю лог

02-29 13:26:48.356: E/CursorWindow(5357): need to grow: mSize = 1048576, size = 216, freeSpace() = 109, numRows = 2594
02-29 13:26:48.356: E/CursorWindow(5357): not growing since there are already 2594 row(s), max size 1048576
02-29 13:26:48.356: E/CursorWindow(5357): The row failed, so back out the new row accounting from allocRowSlot 2593
02-29 13:26:48.356: E/Cursor(5357): Failed allocating fieldDir at startPos 0 row 2593

Я что-то здесь упустил?

1 Ответ

0 голосов
/ 01 марта 2012

Не вызывайте close для управляемого запроса, поскольку он делает это за вас. На самом деле я не уверен, что это за ошибка, но попробуйте удалить оператор close и посмотреть, что произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...