Шрифт:
Нет проблем не возникнет при связывании сервиса с широковещательным приемником, потому что приемники не имеют какой-либо временного ограничения, чтобы выполнить функциональность.
Вопрос 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 секунд.
Используйте уведомления, потому что показ диалога внезапно может раздражать пользователя.