Сборник тестов: 1500 вопросов и ответов на знание Android
Шрифт:
Ответ: 2 уровня – уровень приложений, уровень ядра. Один на уровне операционной системы или уровня ядра. Другой использует теги permission на уровне приложения.
Вопрос 29
Ответ: аpp2
Вопрос 30
Ответ: uses-permission тег должен быть написан в файле манифеста app2, перед тегом application.
Вопрос 31
Ответ: permission тег должен быть в файле манифеста app1 перед тегом application, и мы должны потребовать это разрешение с помощью android: permission атрибута в service теге app1.
Вопрос 32
Ответ: android: id
Вопрос 33
Ответ: normal, dangerous, signature, signatureOrsystem.
Вопрос 34
Ответ:
Вопрос 35
Ответ: Манифест файл описывает возможности вашего приложения и количество компонентов в вашем приложении. Файл манифеста представляет важную информацию о вашем приложении для Android системы, информация для системы должна быть предоставлена прежде чем она может запустить любой код приложения.
Активность, которая имеет следующий Intent фильтр будет выполнена первой:
<intent-filter>
<action android: name=«android. intent. action. MAIN» />
<category android: name=«android. intent. category. LAUNCHER» />
</intent-filter>
Вопрос 36
Ответ: Splash является активностью, которая будет показана в качестве начального экрана при запуске приложения. Этот экран будет использоваться для демонстрации логотипа вашей компании и другой информации. Splash будет отображаться в течение нескольких секунд, прежде чем откроется главный экран приложения.
Вопрос 37
Ответ: Фильтры намерений всегда находятся в AndroidManifest. xml, потому что Android система использует фильтры намерений, для того чтобы найти подходящий компонент для обработки намерения. Фильтр намерения определяет намерение, на которое компонент может реагировать.
Мы можем определять intent-filter в Java коде также, в случае динамических приемников вещания.
Вопрос 38
Ответ: Сохранить все эти переменные в onSaveInstanceState .
Вопрос 39
Ответ: Вы не должны использовать этот метод для сохранения очень больших объектов, так как это может занять время, чтобы сериализовать и де-сериализовать их.
Используйте этот метод только для сохранения небольших переходных состояний. Если мы хотим сохранить большие объекты, использовать функцию onRetainNonConfigurationInstance .
Вопрос 40
Ответ: Нет, потому что эта функция может быть не вызвана. Мы должны сохранить все обновления базы данных до или в функции оnPause . Если вы сохраните базу данных в onSaveInstanceState, то эта функция не будет вызвана, если пользователь нажимает кнопку назад в активности. onSaveInstanceState предназначена для сохранения текущего состояния, когда происходит изменение конфигурации, как, например, изменение ориентации экрана.
Вопрос 41
Ответ: Использовать статическую переменную, чтобы указать на изображение, так что оно не будет убито в случае разрушения
Использовать функцию onRetainNonConfigurationInstances , чтобы сохранить изображение.
Вопрос 42
Ответ: Она будет запущена в новой задачи всегда.
Вопрос 43
Ответ: Код не будет запускать еще один экземпляр активности «B» на вершине активности «D». Вместо этого код отправит новое намерение в метод onNewIntent активности «B» и активности C, D будут уничтожены автоматически, так что стек будет выглядеть A-> B.
Вопрос 44
Ответ: Android сохранит и восстановит интерфейс автоматически, поэтому программисту не нужно беспокоиться.
Вопрос 45
Ответ: weight свойство указывает, какая часть оставшегося места должно быть взято этим представлением. weightSum указывает сумму весов дочерних представлений. Если weightSum не предоставляется для макета, тогда weightSum будет автоматически рассчитано путем суммирования весов дочерних представлений в этом макете. Используйте weightSum в макете, только если вы не собираетесь добавить новое представление в макет. Это может создать проблемы, если вы хотите изменить или добавить новое дочернее представление с новым весом в существующий макет. Тогда вы должны убедиться, что вы измените сумму весов родительской компоновки. Иначе компоновка не будет работать, как требуется.
Вопрос 46
Ответ: Используйте относительное расположение с кнопкой со следующими свойствами.
android: layout_alignParentBottom=«true»
android: layout_centerHorizontal=«true»
Вопрос 47
Ответ: Все перечисленное.
Вопрос 48
Ответ: Только doInBackground .
Вопрос 49
Ответ: Используйте изменяемый логический флаг, на основе которого возвращать из метода run класса Thread.
void run {
if (!shouldContinue) {
return 1;
}
then rest of the thread code
}
Вопрос 50
Ответ: Потому что синхронизация является дорогостоящей по сравнению с однопоточной моделью. Используя синхронизацию также можно манипулировать UI из других потоков. Но Android не следует этой модели, потому что это очень дорого с точки зрения процессорного времени.
Тест 15
Вопрос 1
Ответ: Это является обязательным, чтобы запускать AsyncTask только из основного потока, иначе может быть крушение во время выполнения, когда мы попытаемся получить доступ к интерфейсу из методов onPreExecute, onProgressUpdate, onPostExecute.
Вопрос 2
Ответ: Мы не должны вызывать execute более, чем один раз для одного объекта, будет бросаться исключение во время выполнения.
Вопрос 3
Ответ: До donut – он использовался, чтобы создать один поток, с 1,6 до 2,3 – использовался для создания нескольких потоков, начиная с 3,0 – он снова используется для создания одного потока.