Читать книгу «Сборник тестов: 1500 вопросов и ответов на знание Android» онлайн полностью📖 — Тимура Машнина — MyBook.

Тест 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, который преобразует URL-адреса в IP-адреса.

Он используется для хранения таблиц в базе данных.

Вопрос 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));

}

Варианты:

Код получает все строки таблицы контактов и получает все имена.

Код получает все строки таблицы контактов и получает все имена из первой строки.

Код получает все строки таблицы контактов и получает все имена из последней строки.

Код получает все строки таблицы контактов и получает контактные номера из первой строки.

Вопрос 13

Объясните жизненный цикл активности в Android? Какой из следующих циклов всегда правильный?

onCreate-> onStart () -> onResume () -> onPause () -> onStop () -> onDestroy ().

onCreate-> onStart () -> onRestoreInstanceState () -> onResume () ->

onSaveInstanceState () -> onPause () -> onStop () -> onDestroy ().

onCreate-> onStart () -> onResume () -> onStop () -> onPause -> onDestroy ().

onCreate-> onStart () -> onRestoreInstanceState () -> onResume () ->

onPause () -> onSaveInstanceState () -> onStop () -> onDestroy ().

Вопрос 14

В функции активности оnCreate, какова цель super. oncreate ()?

Это дает разрешение на использование экрана телефона.

Это вызывает конструктор суперкласса.

Это ничего не делает.

Это создаст графическое окно для подкласса.

Вопрос 15

Является ли обязательным реализация методов оnCreate () и оnStart () жизненного цикла активности? Будет ли активность работать, если эти методы жизненного цикла будут удалены?

Это даст ошибку времени компиляции.

Это даст исключение времени выполнения, supernotcalled.

Ничего не случится, активность будет работать нормально.

Ваш телефон зависнет.

Вопрос 16

Можно ли создать активность без UI?

Невозможно

Да, если она выполняет некоторые функции без пользовательского интерфейса.

Вопрос 17

Как запустить активность, чтобы получить результат?

startActivityOnResult ()

startActivityForResult ()

setResult ()

startActivity ()

Вопрос 18

Когда дисплей выключается, какая функция жизненного цикла вызывается в активности?

onPause ()

onStop ()

onSaveInstanceState ()

Вопрос 19

Когда новая активность занимает передний план вместо вашей активности, какая функция жизненного цикла запускается на выполнение в старой активности?

Вызывается оnPause ()

Вызывается оnPause () -> затем -> оnStop ()

Вызывается оnPause () -> затем -> оnStop () -> оnDestroy ()

Вызывается оnPause () -> затем -> onSaveInstanceState ()

Вопрос 20

Когда диалог отображается на переднем плане вашей активности, эта активность будет на переднем плане или в видимом состоянии?

Вызывается оnPause ()

Вызывается оnPause () -> затем -> оnStop () -> оnDestroy ()

Вызывается оnPause () -> затем -> оnStop ()

Вызывается onResume ()

Вопрос 21

При запуске активности с помощью startactivityforresult (), и дочерняя активность получает крушение. Какой код результата будет получен родителем?

RESULT_OK

RESULT_CANCELLED

RESULT_CRASH

RESULT_FINISH

Вопрос 22

Какие варианты хранения постоянных данных в Android?

Файлы, массивы, базы данных

Файлы, базы данных

Использование сетевых серверов

Вопрос 23

Когда возникает Android ANR (приложение не отвечает). Какое существует ограничение по времени отклика пользовательского интерфейса в Android, т. е. за сколько секунд главный поток должен реагировать на действия пользователя?

5 сек

10 сек

1 сек

2 сек

Вопрос 24

Какой из следующих фильтров намерения основной активности запускает главный экран вашего приложения?

<intent-filter>

<action android:name=«android. intent. action. MAIN» />

<category android:name=«android. intent. category. LAUNCHER» />

</intent-filter>

<intent-filter>

<action android:name=«Intent. MAIN» />

<category android:name=«Category. LAUNCHER» />

</intent-filter>

<intent-filter>

<action android:name=«android. intent. action. LAUNCHER» />

<category android:name=«android. intent. category. MAIN» />

</intent-filter>

Вопрос 25

Как создать пользовательский интерфейс без использования XML файла? Например, как создать кнопку без XML файла?

@Override

public void onCreate (Bundle savedInstanceState) {

super. onCreate (savedInstanceState);

setContentView (R. layout. main);

}

@Override

public void onCreate (Bundle savedInstanceState) {

super. onCreate (savedInstanceState);

Button b;

setContentView (b);

}

@Override

public void onCreate (Bundle savedInstanceState) {

super. onCreate (savedInstanceState);

Button b = new Button (this);

setContentView (b);

}

@Override

public void onCreate (Bundle savedInstanceState) {

super. onCreate (savedInstanceState);

Button b = findViewById (R. id. button1);

setContentView (b);

}

Вопрос 26

Какая функция жизненного цикла будет вызвана в случае изменения конфигурации?

onStop ()

onPause ()

onSaveInstanceState ()

Вопрос 27

Могу ли я сохранить все мои обновления таблиц базы данных в методе оnStop () активности?

Да это можно.

Нет, использовать onSaveInstanceState

Нет, потому что оnStop никогда не будет вызван

Нет, потому что оnStop () может быть не вызван в некоторых ситуациях.

Вопрос 28

Какая разница между persistent данными и transient данными?

Постоянные данные это временные данные, например, создание массива в программе.

Переходные данные это временные данные, которые мы храним в таблицах базы данных.

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

Вопрос 29

Что произойдет, если super. oncreate () в оnCreate () функции активности будет закомментировано?

Ошибка времени компиляции.

Исключение во время работы.

Ничего не произойдет, будет выполнено с пустым окном.

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

Вопрос 30

В чем разница между this context и getapplicationcontext? Какой из них использовать и когда?

Никакой разницы, они одинаковы.

this указывает на весь процесс, контекст приложения указывает на текущий класс.

this указывает на текущий контекст, контекст приложения указывает на весь процесс. Если ваш контекст это полное время жизни процесса, тогда использовать контекст приложения, иначе использовать this.

Вопрос 31

Где зарегистрировать широковещательный приемник, который обновляет интерфейс? Если у меня есть широковещательный приемник, который обновляет мой интерфейс часто, то где я должен зарегистрировать этот широковещательный приемник в моей функции жизненного цикла активности?

oncreate ()

onstart ()

onresume ()

onsaveinstancestate ()

Вопрос 32

Большое изображение загружено из Интернета в методе оnCreate () активности. Можно ли сохранить его в onsaveinstancestate () в случае configurationChanges?

Да

Нет, мы должны сохранить его в оnPause ().

Нет, мы должны использовать статическую ссылку на него.

Нет, нам не нужно его сохранять вообще.

Вопрос 33

Приложение имеет один широковещательный приемник, чей оnReceive () метод в настоящее время выполняется, сервис в рабочем состоянии; тогда какой приоритет у процесса?

service process priority (3)

empty process (5)

foreground process (1)

visible process (2)

Вопрос 34

Что такое BroadcastReceiver в Android?

Это Android компонент, который реагирует на системные широковещательные сообщения.

Он действует как шлюз между внешним миром и вашим приложением.

Все перечисленное.

Вопрос 35

Широковещательный приемник работает в каком потоке по умолчанию?

Главный поток.

Фоновый поток.

Нет потока.

Вопрос 36

Что произойдет, если широковещательный приемник свяжется с binder service? Возникнет ли проблема?

Нет, не следует связывать сервис с широковещательным приемником.

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

Нет проблем не возникнет при связывании сервиса с широковещательным приемником.

Нет проблем не возникнет при связывании сервиса с широковещательным приемником, потому что приемники не имеют какой-либо временного ограничения, чтобы выполнить функциональность.

Вопрос 37

Можно ли запустить сервис из широковещательного приемника?

Да можно использовать функцию startService ().

Нет, никогда нельзя запустить сервис из широковещательного приемника.

Вопрос 38

В чем разница между широковещательным приемником и сервисом?

BroadcastReceiver это как шлюз для других компонентов, может выполнять небольшую фоновую работу в течение 10 секунд. Сервис может выполнять длительную работу в фоновом режиме без UI и без ограничения времени.

Сервис это как шлюз для других компонентов, может выполнять небольшую фоновую работу в течение 10 секунд. BroadcastReceiver может выполнять длительную работу в фоновом режиме без UI и без ограничения времени.

BroadcastReceiver это как шлюз для других компонентов, может выполнять небольшую фоновую работу в течение 10 секунд. Сервис может выполнять длительную работу в фоновом режиме без UI и без ограничения времени. Сервис может взаимодействовать с интерфейсом, если он хочет. Это не обязательно, чтобы сервис не имел интерфейс.

BroadcastReceiver это как шлюз для других компонентов, может выполнять небольшую фоновую работу в течение 10 секунд. Сервис может выполнять длительную работу в фоновом режиме без UI и без ограничения времени. Оба и приемник и сервис могут взаимодействовать с интерфейсом, если они этого захотят. У широковещательных приемников есть лимит времени в 10 секунд, и они реагируют на транслируемые сообщения.

Вопрос 39

Как запустить широковещательный приемник, когда загрузка устройства завершена?

<receiver>

<intent-filter>

<action android:name=«android. intent. action. BOOT_COMPLETED»/>

</intent-filter>

</receiver>

<receiver>

<intent-filter>

<action android:name=«intent. action. BOOT_COMPLETED»/>

</intent-filter>

</receiver>

<receiver>

<action android:name=«intent. action. BOOT_COMPLETED»/>

</receiver>

<broadcastreceiver>

<intent-filter>

<action android:name=«intent. action. BOOT_COMPLETED»/>

</intent-filter>

</broadcastreceiver>

Вопрос 40

В чем разница между sendbroadcast (), sendorderedbroadcast (), sendstickybroadcast ()?

sendbroadcast () – нормальное вещание.

sendorderedbroadcast () – мы можем установить приоритет.

sendstickybroadcast () – намерение передается для будущих пользователей.

sendbroadcast () – нормальное вещание, но также мы можем установить приоритет.

sendorderedbroadcast () – мы можем установить приоритет и установить результат. Не может блокировать вещание.

sendstickybroadcast () – намерение передается для будущих пользователей.

sendbroadcast () – нормальное вещание.

sendorderedbroadcast () – мы можем установить приоритет и установить результат. Может блокировать вещание.

sendstickybroadcast () – намерение передается для будущих пользователей.

sendbroadcast () – нормальное вещание, но также мы можем установить приоритет.

sendorderedbroadcast () – мы можем установить приоритет и установить результат. Может блокировать вещание.

sendstickybroadcast () – переданное намерение будет доступно только один раз.

Вопрос 41

Каким является жизненный цикл широковещательного приемника в Android?

onReceive ()

onCreate () -> onReceive ()

onCreate () -> onReceive () -> onDestroy ()

onReceive () -> onDestroy ()

Вопрос 42

В каком потоке широковещательный приемник работает?

Worker thread

Kernel thread

Main Thread

Ничего из перечисленного.

Вопрос 43

Чтобы сообщить что-то для пользователя от широковещательного приемника, следует использовать диалоговые окна или уведомлений? Почему?

Использовать диалоговые окна, потому что они более заметны, чем уведомления.

Используйте уведомления, потому что приемник должен закончить свою работу в течение 10 секунд.

Используйте уведомления, потому что показ диалога внезапно может раздражать пользователя.

Используйте и диалоги и уведомления.

Вопрос 44

Как создать широковещательный приемник без регистрации его в файле манифеста?

Каждый компонент должен зарегистрироваться в файле манифеста.

Мы можем зарегистрировать приемник динамически в коде с помощью registerReceiver.

Мы можем зарегистрировать приемник статически в коде.

Каждый компонент должен зарегистрироваться в файле манифеста, потому что без фильтра намерений не возможно запустить код.

Вопрос 45

Как отправить BATTERY_LOW трансляцию? Нужно использовать sendbroadcast () или sendstickybroadcast? Почему?

Используйте sendBroadCast (), потому что для sendstickybroadcast вам, возможно, потребуется получить разрешение.

Использовать sendStickyBroadCast (), потому что логически эта трансляция должна быть доступна для будущих пользователей.

Мы можем использовать оба метода.

Использовать sendOrderedBroadcast (), потому что трансляция должна быть упорядочена должным образом.

Вопрос 46

Как установить сигнал для срабатывания после двух дней? Предположим, что пользователь может выключить телефон в промежутке.

Используйте AlarmManager и вызов set (), чтобы установить сигнал после 2 дней. Даже если телефон выключается все сработает.

Используйте AlarmManager и вызов set (), чтобы установить сигнал после 2 дней. Если телефон будет выключен, все сигналы тревоги будут отменены. Так что это не возможно.

Используйте AlarmManager и вызов set (), чтобы установить сигнал после 2 дней. Если телефон будет выключен, все сигналы тревоги будут отменены. Поэтому до выключения сохранять все детали сигнала в базе данных и воссоздать сигнал после включения.

Используйте AlarmManager и вызов set (), чтобы установить сигнал после 2 дней. Даже если телефон выключается все сработает, потому что, когда телефон выключается все сигналы отменяются, но когда телефон включается, Android вновь создает сигналы автоматически.

Вопрос 47

Как сделать так, чтобы запускать широковещательный приемник, только если моя активность находится в памяти?

Отправить трансляцию только тогда, когда ваша активность жива.

Регистрировать динамически приемник в этой активности.

Регистрировать статически приемник в файле манифеста.

Этого невозможно достичь.

Вопрос 48

Как сделать так, чтобы приемник срабатывал сразу после загрузки.

<uses-permission android:name=«android. permission. RECEIVE_BOOT_COMPLETED»> </uses-permission>

<receiver android:name=«BroadcastReceiver»>

<intent-filter>

<action android:name=«android. intent. action. BOOT_COMPLETED»> </action>

</intent-filter>

</receiver>

<receiver android:name=«BroadcastReceiver»>

<intent-filter>

<action android:name=«android. intent. action. BOOT_COMPLETED»> </action>

</intent-filter>

</receiver>

<uses-permission android:name=«android. permission. RECEIVE_BOOT_COMPLETED»> </uses-permission>

<receiver android:name=«BroadcastReceiver»>

<intent-filter>

<action android:name=«Intent. BOOT_COMPLETED»> </action>

</intent-filter>

</receiver>

<receiver android:name=«BroadcastReceiver»>

<intent-filter>

<action android:name=«Intent. BOOT_COMPLETED»> </action>

</intent-filter>

</receiver>

Вопрос 49

В чем разница между px, dp, dip и sp?

px – пиксели, dp – плотность пикселей, dip – плотность пикселей независимые, sp – масштабные независимые пиксели.

px – пиксели, dp – плотность фото, dip – плотность независимых фото, sp – масштабные независимые пиксели.

px – пиксели, dp – плотность пикселей независимые, dip – плотность пикселей независимые, sp – масштабные независимые пиксели.

px – пиксели, dp – плотность фото независимые, dip – плотность фото независимые, sp – масштабные независимые пиксели.

Вопрос 50

Что такое android:gravity атрибут в теге view?

Это, чтобы выровнять представление либо право/верх/низ/центр в своем родительском макете

Это, чтобы выровнять содержимое представления либо право/верх/низ/центр в данном представлении.

Это, чтобы выровнять родительский макет представления либо право/верх/низ/центр.

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