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