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:
- Service envía un mensaje broadcast usando
sendBroadcast(Intent)oLocalBroadcastManager. - Fragment registra un
BroadcastReceiver, que escucha acciones específicas en el intent. - Cuando Service envía el broadcast, el
BroadcastReceiverregistrado 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.