Sobes.tech
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:

  1. Service envia uma mensagem broadcast usando sendBroadcast(Intent) ou LocalBroadcastManager.
  2. Fragment regista um BroadcastReceiver, que escuta ações específicas no intent.
  3. Quando o Service envia o broadcast, o BroadcastReceiver registado 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.