Зачем отменять регистрацию Broadcast Receiver, если я хочу получать трансляции, даже когда приложение закрыто? - PullRequest
0 голосов
/ 28 февраля 2020

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

1 Ответ

1 голос
/ 28 февраля 2020

Если я отменю регистрацию получателя после закрытия моего приложения, я не смогу получать намерения на этот BroadcastReceiver, верно?

Да, если вы отмените регистрацию получателя через unregisteReceiver() что вы зарегистрировались через registerReceiver(), этот приемник больше не будет принимать трансляции.

Если это так, не приведет ли это к поражению цели?

Не совсем.

Вы, похоже, беспокоитесь о том, когда ваше приложение "закрыто". В этом контексте глагол «закрыто» не очень конкретен c, но как только пользовательский интерфейс вашего приложения переместится в фоновый режим, ваш процесс может быть остановлен в любой момент времени. Когда ваш процесс завершается, все получатели, которые вы регистрируете с помощью registerReceiver() vani sh, вместе со всем остальным в процессе. Динамическая регистрация получателя полезна только во время работы вашего процесса. Поэтому, независимо от того, звоните вы по номеру unregisterReceiver() или нет, когда ваше приложение «закрыто», вы вскоре не сможете получать трансляции.

Основная альтернатива registerReceiver() - это регистрация <receiver> в манифест. Однако в современных версиях Android зарегистрированные получатели манифеста не могут принимать много передач .

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