Сборник тестов: 1500 вопросов и ответов на знание Android | страница 43



oncreate> onstartCommand ()> onDestroy ()


Вопрос 18

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

Не помещайте никаких фильтров намерений в тег service или поместите exported=«false»; в тег service или LocalServiceManager.

Не помещайте никаких фильтров намерений в тег service или LocalServiceManager.

Не помещайте никаких фильтров намерений в тег service или поместите imported=«false»; в тег service или LocalServiceManager.

Поместите exported=«false»; в тег service или LocalServiceManager.


Вопрос 19

Чтобы сделать некоторую фоновую работу в активности, что лучше использовать поток или сервис?

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

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

Вы можете использовать поток или сервис, основываясь на ваших требованиях. Но в большинстве случаев лучше использовать сервис.

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


Вопрос 20

Можно ли запустить сервис из рабочего потока?

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

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

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

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


Вопрос 21

Что произойдет, если вы попытаетесь обновить пользовательский интерфейс или попробовать напечатать тост-сообщение из onHandleIntent () функции класса IntentService?

Все будет прекрасно. Мы можем обновлять интерфейс из класса IntentService.

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

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