Сборник тестов: 1500 вопросов и ответов на знание Android - Машнин Тимур Сергеевич. Страница 30

<scale android: fromXScale=«80%p»

android: toXScale=«100%p»

android: fromYScale=«80%p»

android: toYScale=«100%p»

android: pivotX=«50%p»

android: pivotY=«50%p» android: duration="@android: integer/config_mediumAnimTime» />

<alpha android: fromAlpha=«0.5»

android: toAlpha=«1.0»

android: duration="@android: integer/config_mediumAnimTime»/>

</set>

Перейти к активности

@Override

protected void onCreate (Bundle savedInstanceState)

{

super. onCreate (savedInstanceState);

//apply opening animation

overridePendingTransition (R. anim. opening_trans, R. anim. closing_scale);

}

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

Вопрос 43

Как скрыть клавиатуру в Android?

Программно можно закрыть виртуальную клавиатуру с помощью следующего кода:

InputMethodManager inputManager = (InputMethodManager)

this. getSystemService (Context. INPUT_METHOD_SERVICE);

inputManager. hideSoftInputFromWindow (this. getCurrentFocus (). getWindowToken (),

InputMethodManager. HIDE_NOT_ALWAYS);

Программно можно закрыть виртуальную клавиатуру с помощью следующего кода:

getWindow (). setSoftInputMode (WindowManager. LayoutParams. SOFT_INPUT_STATE_ALWAYS_HIDDEN);

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

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

Вопрос 44

Какие размеры экрана доступны или поддерживаются в Android?

Android поддерживает 4 варианта размеров экрана: small, normal, large, extra large.

Экраны xlarge по меньшей мере 960dp x 720dp, large экраны по меньшей мере 640dp x 480dp, normal экраны по меньшей мере 470dp x 320dp, small экраны по меньшей мере 426dp x 320dp.

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

Вопрос 45

Как получить разницу между двумя датами в Android?

Предположим, что есть две даты D1 и D2.

long dif_dates = d1.getTime () – d2.getTime ();

long secs = dif_dates / 1000;

long mins = secs / 60;

long hours = mins / 60;

long days = hours / 24;

Предположим, что у вас есть две даты secondDate и firstDate.

long dateDif = secondDate. getTime () – firstDate. getTime ();

long difference = TimeUnit. MILLISECONDS. toSeconds (dateDif);

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

Вопрос 46

Каждое приложение имеет по умолчанию один поток. Правда это или ложь?

Ложь, по умолчанию, нет ни одного потока, доступного для данного приложения.

Правда, всегда любое приложение будет иметь по умолчанию один основной поток.

Правда, но это не всегда. Иногда приложение может не иметь поток.

Вопрос 47

Что такое ANR (application not responding)? Что является причиной этой проблемы и какое решение этой проблемы?

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

Решение – запускать только компоненты пользовательского интерфейса в основном потоке.

ANR будет происходить, если мы запускаем UI в другом рабочем потоке. Так как другие потоки не должны иметь доступ к интерфейсу, это может закрыть приложение.

Решение – не касайтесь компонентов пользовательского интерфейса из других потоков, из не основного потока.

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

Решение – запускать только компоненты пользовательского интерфейса в основном потоке.

ANR будет происходить, если мы выполняем какие-либо тяжелые операции с UI в единственном главном потоке. Если две тяжелые функциональности возникают в одном потоке, это приведет к задержке ответа на действия пользователя, что может раздражать пользователя, и, следовательно, остановить весь процесс.

Решение – никогда не выполняйте две тяжелые функциональности в вашем приложении одновременно.

Вопрос 48

Если у меня есть приложение с активностью, сервисом и ContentProvider. Когда я запускаю эту программу, сколько процессов и потоков будет создано? Можно ли запустить эти компоненты в более чем одном процессе?

Один процесс, один поток. Да, это возможно, чтобы работать в более чем одном процессе.

Один процесс, один поток, одно приложение может иметь только один процесс.

Процесс не связан с приложением.

Вопрос 49

Можно ли отправить сообщение из потока-а в поток-б, если поток-б не подготовил свой Looper?

Да коммуникация между потоками возможна без Looper.

Если поток-а хочет отправить сообщение в поток-б, тогда Looper потока-б должен быть подготовлен, чтобы получить сообщение, отправленное другими.

Если поток-а хочет отправить сообщение в поток-б, тогда Looper потока-а должен быть подготовлен, чтобы отправить сообщение потоку-б.

Если поток-а хочет отправить сообщение в поток-б, тогда Looper потока-б должен быть подготовлен, чтобы получить сообщение, отправленное другими. Также возможно с помощью HandlerThread создавать межпоточную коммуникацию.

Вопрос 50

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

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

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

Запросить основной поток через коммуникацию между потоками с использованием Handler или функции runOnUiThread, и манипулировать UI.

Держать UI компоненты, которые должны быть общими, в общей памяти, и позволить всем потокам манипулировать ими.

Тест 13

Вопрос 1

Как создать сервис с одним потоком в нем?

Создать сервис с одним потоком в оnCreate ().

Использовать Intent Service.

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

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

Вопрос 2

По умолчанию процесс (приложение) сколько будет иметь потоков? Кто будет создавать эти потоки?

По умолчанию нет потоков.

2 потока, созданные Android системой.

1 главный поток, созданный Android системой.

Вопрос 3

Поддерживает ли Android многозадачность? Как многозадачность работает в Android, как начать новую задачу, когда вы уже имеете работающую задачу?

Нет, Android не поддерживает многозадачность. Но многопоточность возможна.

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

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

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