#android #database #android-cursor
#Android #База данных #android-курсор
Вопрос:
Например, если я использую следующий код для запроса некоторых данных из базы данных.
Uri uri = Uri.parse("content://com.android.contacts/contacts?address_book_index_extras=true");
String selection = "LEFT OUTER JOIN (select raw_contact_id, data1 from data where mimetype_id = 5) AS phone_data ON(_id = phone_data.raw_contact_id)";
Cursor c = getContentResolver().query(Contacts.CONTENT_URI, null, selection, null, null);
Я хочу спросить, копирует ли база данных после метода запроса свой результирующий набор в cursor или просто делает cursor чем-то вроде указателя и указывает на первую строку результирующего набора и запрашивает дополнительные данные, когда мы вызываем `moveToNext’
спасибо
Ответ №1:
ДА. Это копия базы данных, доступная только для чтения.
Комментарии:
1. Есть ли у вас какая-либо ссылка в качестве источника / reference для этого?
Ответ №2:
От разработчиков Android:
Этот интерфейс предоставляет случайный доступ для чтения и записи к результирующему набору, возвращаемому запросом к базе данных. Синхронизация реализаций курсора не требуется, поэтому код, использующий курсор из нескольких потоков, должен выполнять собственную синхронизацию при использовании курсора.