Broadcast en Kotlin Android


Primero se debe crear una clase que herede de BroadcastReceiver que será para recibir los mensajes que lleguen por el canal Broadcast

class MyBroadcastReceiver : BroadcastReceiver() {

    override fun onReceive(context: Context, intent: Intent) {
        Log.i(TAG, "onReceive $intent")

        when (intent?.action) {
            Intent.ACTION_POWER_CONNECTED -> handleSomethingHappened()
        }

    }
}

Registrar el broadcast

Para registrar el broadcast debemos crear una variable del tipo MyBroadcastReceiver

class MainActivity : AppCompatActivity() {

    val broadCastReceiver: BroadcastReceiver = MyBroadcastReceiver()
...

Luego para que se pueda recibir los mensajes, se debe registrar el broadcast, se puede registrar a un evento o multiples eventos.

Para registrar un Broadcast a un solo evento

override fun onStart() {
    super.onStart()

    val filter = IntentFilter()
    filter.addAction(Intent.ACTION_POWER_CONNECTED)
    broadCastReceiver = MyReceiver()
    registerReceiver(broadCastReceiver, filter)

}

Para registrar un Broadcast a multiples eventos

val filter = IntentFilter(Intent.ACTION_POWER_CONNECTED).apply {
    addAction(Intent.ACTION_POWER_DISCONNECTED)
    addAction(Intent.ACTION_BATTERY_CHANGED)
    addAction(Intent.ACTION_BATTERY_LOW)
    addAction(Intent.ACTION_BATTERY_OKAY)
}
registerReceiver(broadCastReceiver, filter)

Desregistrar el broadcast

Para desregistrar el broadcast y así parar de recibir mensajes del canal que estaba registrado

override fun onStop() {
    super.onStop()
    unregisterReceiver(broadCastReceiver)
}
Anuncio publicitario

Publicado por Codelaby

Mobile DevDesigner

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: