Подтвердить что ты не робот

LocalBroadcastManager vs Context.registerReceiver(), Context.sendBroadcast(Intent) и Context.unregisterReceiver() - они такие же?

Я использовал Context.registerReceiver(), Context.sendBroadcast(Intent) , and Context.unregisterReceiver()

но когда я увидел класс LocalBroadcastManager, он имеет registerReceiver(), sendBroadcast(Intent) , и unregisterReceiver(), как в Context.

Я в замешательстве. Когда следует использовать LocalBroadcastManager? они одинаковы в Context?

Привет,

Спасибо...

4b9b3361

Ответ 1

LocalBroadcastManager, по словам его имени, представляет собой реализацию широковещательных методов только, доступных вашему приложению. У этого есть некоторые преимущества, с самой большой безопасностью, одним меньшим отверстием, чтобы следить за. Что касается реализации, есть несколько вещей, о которых нужно помнить:

  • Этот класс из библиотеки поддержки Android
  • Вызов метода должен быть предварительно помечен LocalBroadcastManager.getInstance([CONTEXT]), где [CONTEXT] является подклассом класса Context, таким как Activity.
  • Когда вы используете этот класс, это просто для вашего приложения. Использование этого устройства для регистрации приемников и создания широковещательных систем, которые являются системными, потерпит неудачу.

Таким образом, этот класс не является тем же, что и Context, это просто очень специфическая реализация методов Context-приемника/широковещания в приложениях. Вы должны использовать его, когда абсолютно не нужно слушать слушателя в глобальных (общесистемных) трансляциях, и когда ваша трансляция не нуждается в таргетинге на что-либо вне вашего приложения.