Sobes.tech
Junior — Middle

¿Cómo se realiza el intercambio de información entre Fragment y Service mediante el uso de BroadcastReceiver?

sobes.tech AI

Respuesta de la IA

La comunicación de información entre Fragment y Service a través de BroadcastReceiver en Android ocurre de la siguiente manera:

  1. Service envía un mensaje broadcast usando sendBroadcast(Intent) o LocalBroadcastManager.
  2. Fragment registra un BroadcastReceiver, que escucha acciones específicas en el intent.
  3. Cuando Service envía el broadcast, el BroadcastReceiver registrado en el Fragment recibe el Intent y procesa los datos.

Ejemplo:

// En Service
val intent = Intent("com.example.ACTION_DATA")
intent.putExtra("data", "Hola desde Service")
sendBroadcast(intent)

// En Fragment
private val receiver = object : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        val data = intent?.getStringExtra("data")
        // Procesar los datos recibidos
    }
}

override fun onStart() {
    super.onStart()
    val filter = IntentFilter("com.example.ACTION_DATA")
    requireContext().registerReceiver(receiver, filter)
}

override fun onStop() {
    super.onStop()
    requireContext().unregisterReceiver(receiver)
}

Este método permite que Service y Fragment intercambien datos de forma asíncrona y con bajo acoplamiento.