Сборник тестов: 1500 вопросов и ответов на знание Android
Шрифт:
Нет, мы должны сначала передать курсор cursorfactory, а затем только мы можем перейти к следующей строке.
Ничего из перечисленного.
Тест 10
Вопрос 1
Что произойдет, если база данных не закрыта после ее использования?
Система автоматически закроет базу, так как Java имеет сборщик мусора.
Ничего не случится.
Будет утечка памяти. После того, как вы закончите работать с базой данных, вам нужно ее закрыть, потому что
Если база данных не закрывается должным образом, тогда какие-либо данные, которые были вставлены, и изменения, сделанные в этой сессии, будут потеряны.
Вопрос 2
Можно ли вызвать метод getWritableDataBase из метода оnCreate ContentProvider?
Да, мы можем вызвать.
Да, мы можем вызвать, но перед вызовом мы должны убедиться, что этот метод вызывается в другом потоке.
getWritableDataBase будет вызван автоматически системой, мы не должны вызывать его в явном виде.
Вызов getWritableDatabase может занимать много времени, создавая и обновляя таблицы, так что вызов этого метода лучше отложить, потому что, если мы поставим вызов здесь, тогда время загрузки приложения будет увеличено и это может раздражать пользователя.
Вопрос 3
Какие обязательные функции, которые нужно реализовать для ContentProvider?
onCreate, insert, update, delete, query, getType.
onCreate и getType.
Только insert, update, delete, query.
Ничего из перечисленного.
Вопрос 4
Что такое android: authorities в контент-провайдере?
Это не имеет никакого значения. Но мы должны убедиться, что каждый контент-провайдер должен иметь по крайней мере одну authority.
Для регистрации каждого контент-провайдера в Android, он должен использовать authorities, кроме этого это не имеет никакого значения.
Это главный ключ или намек для Android, с которым запрос должен быть перенаправлен на контент-провайдера. Когда клиент передает URI, он будет иметь authorities в нем, которые должны соответствовать authorities контент-провайдера.
Ничего из перечисленного.
Вопрос 5
Что такое ContentProvider и ContentResolver? Какие из следующих утверждений верны о них?
ContentProvider и ContentResolver обрабатывают механизм IPC, когда запрос приходит от внешних приложений для доступа к данным.
ContentProvider имеет возможность обрабатывать несколько потоков, когда запросы поступают от нескольких ContentResolver.
sharedpreferences поддерживаются с ContentProvider.
Вопрос 6
Что такое UriMatcher в ContentProvider?
Он используется для преобразования логики от URI к таблицам.
Его можно сравнить с DNS, который
Он используется для хранения таблиц в базе данных.
Вопрос 7
При реализации контент-провайдера, как предоставить URI таблицы?
Создать отдельный файл интерфейса, который доступен для внешнего мира и поместить табличные URI в этот файл.
Наряду с URI, мы должны упомянуть имена столбцов всех таблиц, которые мы предоставляем с URI.
Мы должны документировать в файле интерфейса тип данных каждого столбца.
Все перечисленное.
Вопрос 8
В чем разница между ContentProvider и базой данных SQLite?
Используйте ContentProvider, если вы хотите поделиться базой данных, созданной одной активностью для другой активности одного и того же приложения.
Используйте базу данных, если мы хотим сохранить базу данных приватной для приложения, а также для хранения структурированных данных.
Используйте ContentProvider, если вы хотите поделиться данными, созданными одним приложением для других приложений.
Все перечисленное.
Вопрос 9
Какие опции поддерживаются для использования с ContentProvider:
sharedpreferences
Файлы
Базы данных
Вопрос 10
Где контекст доступен в Content Provider?
Он доступен в конструкторе Content Provider.
Он будет доступен только в оnCreate Content Provider.
Content Provider не имеют контекстов.
Вопрос 11
Как получить доступ к контексту в контент-провайдере?
Использовать getContext в оnCreate
Использовать getApplicationContext в любом месте.
Контекст контент-провайдера не будет иметь ни свой собственный контекст, ни контекст приложения, он должен зависеть от других контекстов.
Вопрос 12
Android получает контактные данные в приложении:
Что следующий код делает?
Cursor c1 = this. getContentResolver . query (
ContactsContract. Contacts. CONTENT_URI, null, null, null, null);
if (c1!= null && c1.getCount > 0)
{
c1.moveToNext ;
String n = c1.getString (c1.getColumnIndex (Contacts. DISPLAY_NAME));
}
Варианты:
Код получает все строки таблицы контактов и получает все имена.
Код получает все строки таблицы контактов и получает все имена из первой строки.
Код получает все строки таблицы контактов и получает все имена из последней строки.
Код получает все строки таблицы контактов и получает контактные номера из первой строки.