Режиссер радиопередач в Котлине

Как использовать регистр и создать широковещательный приемник в Android в Котлине. Любые советы …. На Java вы можете создать его, объявив его в качестве широковещательного приемника. Но в Котлине нет функции вещательного приемника … ну, если она есть, тогда я не могу ее найти или как использовать Это.

вы можете сделать это следующим образом

Создайте объект вещательного приемника в своем классе активности

val broadCastReceiver = object : BroadcastReceiver() { override fun onReceive(contxt: Context?, intent: Intent?) { when (intent?.action) { BROADCAST_DEFAULT_ALBUM_CHANGED -> handleAlbumChanged() BROADCAST_CHANGE_TYPE_CHANGED -> handleChangeTypeChanged() } } } 

Зарегистрировать широковещательный приемник в функции onCreate () вашей деятельности

  LocalBroadcastManager.getInstance(this) .registerReceiver(broadCastReceiver, IntentFilter(BROADCAST_DEFAULT_ALBUM_CHANGED)) 

отменить его в ondestroy функции вашей деятельности

 LocalBroadcastManager.getInstance(this) .unregisterReceiver(broadCastReceiver) 

Анонимный синтаксис класса в Kotlin выглядит так:

 val receiver = object : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { } } 

Я создал расширение BroadcastReceiver Kotlin , которое вы можете копировать / вставлять в любом месте. Это не намного больше, чем то, что уже упоминалось, но оно уменьшает часть шаблона. 😀

Используя это расширение, вы должны зарегистрироваться / отменить регистрацию следующим образом:

 private lateinit var myReceiver: BroadcastReceiver override fun onStart() { super.onStart() myReceiver = registerReceiver(IntentFilter(BROADCAST_SOMETHING_HAPPENED)) { intent -> when (intent?.action) { BROADCAST_SOMETHING_HAPPENED -> handleSomethingHappened() } } } override fun onStop() { super.onStop() unregisterReceiver(myReceiver) } 
Intereting Posts
Как настроить версию Kotlin в Android Studio? Ошибка Kotlin: Ожидаемые 2 параметра типов android.widget.CompoundButton !, kotlin.Boolean Может ли кто-нибудь здесь подробно описать структуру проекта приложения «Котлин / Родник»? Кроме того, особенности работы различных модулей Как я могу заставить конечную точку остального читать файл cookie и использовать это значение в okhttp Interceptor? Что такое @InlineOnly аннотация? Как создать заголовок вложенного / разделенного столбца с помощью TornadoFx? Как я могу проверить метод, который не вызывается для объекта без макета? Как заставить MockWebServer работать? Классы данных в интерфейсе Android WebView не загружает определенный URL-адрес NoClassDefFoundError во время выполнения Как работают функции расширения Котлина? Использование в Generics в Multibinder Равенство идентичности для аргументов типов Int и Int устарело Невозможно создать класс объектов Android Room.