2012-03-23 3 views
2

Теперь я читаю документацию, и у меня есть одна вещь для исправления - пожалуйста, скажите мне, какая разница между широковещательным приемником и активностью (без того, что активность может показывать пользовательский интерфейс) ? Приемник широковещательной передачи получает объявления с использованием фильтра намерения, но Activity также может это сделать! Пожалуйста, дайте мне понять. Спасибо.Различия между широковещательным приемником и активностью

+0

активен, и широковещательный приемник принимает широковещательные сообщения? – njzk2

ответ

2

Деятельность - это то, что работает на вашем входе или требует вмешательства пользователя для запуска любой задачи, но с помощью широковещательного приемника вы можете прослушивать системные службы, как только приемник вещания запускается для прослушивания входящих вызовов, а затем каждый раз, когда входящий вызов будет начать свой метод, что вы написали для этого для более подробного объяснения проверить эти

http://developer.android.com/reference/android/content/BroadcastReceiver.html

http://www.vogella.de/articles/AndroidServices/article.html

0

вы в основном есть. Действие предназначено для связи с пользовательским интерфейсом. В отличие от этого приемник широковещательной передачи только «ловит» намерения, транслируемые через приложение/систему. Тем не менее, есть также последствия для того, как объект загружается в систему и как долго она хранится. Из документации BroadcastReciever:

Объект BroadcastReceiver действует только на время вызова onReceive (контекст, намерение). Как только ваш код вернется из этой функции, система считает объект законченным и больше не активным.

Это имеет важные последствия для того, что вы можете сделать в реализации onReceive (Context, Intent): все, что требует асинхронной операции, недоступно, потому что вам нужно будет вернуться из функции для обработки асинхронной операции, но при этом point BroadcastReceiver больше не активен, и, таким образом, система может убить свой процесс до завершения асинхронной операции.

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

0

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

Слушатель всегда активен на заднем плане. Единственное, что может «активировать» слушателя, это то, что он слушает. Пример: транслятор будет обнаруживать (и реагировать), когда вы получаете phonecall/sms, но будет игнорировать тот факт, что вы настроили будильник (поскольку он обращает внимание только на входящие/исходящие трансляции)

фильтр намерений делает довольно То же самое для обоих, разница в том, как это называется. С деятельностью это требует от пользователя что-то делать; с слушателями, это требует, чтобы слушатель запускался.

Смежные вопросы