Junior — Middle
De que forma é efetuada a troca de informações entre Fragment e Service através do uso de BroadcastReceiver?
sobes.tech IA
Resposta da IA
A troca de informações entre Fragment e Service através de BroadcastReceiver no Android ocorre da seguinte forma:
- Service envia uma mensagem broadcast usando
sendBroadcast(Intent)ouLocalBroadcastManager. - Fragment regista um
BroadcastReceiver, que escuta ações específicas no intent. - Quando o Service envia o broadcast, o
BroadcastReceiverregistado no Fragment recebe o Intent e processa os dados.
Exemplo:
// No Service
val intent = Intent("com.example.ACTION_DATA")
intent.putExtra("data", "Olá do Service")
sendBroadcast(intent)
// No Fragment
private val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
val data = intent?.getStringExtra("data")
// Processar os dados recebidos
}
}
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 e Fragment troquem dados de forma assíncrona e com baixo acoplamento.