Sobes.tech
Junior — Middle

Cum se realizează schimbul de informații între Fragment și Service prin utilizarea BroadcastReceiver?

sobes.tech AI

Răspuns de la AI

Schimbul de informații între Fragment și Service prin BroadcastReceiver în Android are loc după cum urmează:

  1. Service trimite un mesaj broadcast folosind sendBroadcast(Intent) sau LocalBroadcastManager.
  2. Fragment înregistrează un BroadcastReceiver, care ascultă anumite acțiuni (action) în intent.
  3. Când Service trimite broadcast-ul, BroadcastReceiver înregistrat în Fragment primește Intent-ul și procesează datele.

Exemplu:

// În Service
val intent = Intent("com.example.ACTION_DATA")
intent.putExtra("data", "Salut din Service")
sendBroadcast(intent)

// În Fragment
private val receiver = object : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        val data = intent?.getStringExtra("data")
        // Procesarea datelor primite
    }
}

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

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

Această metodă permite ca Service și Fragment să facă schimb de date asincron și cu un cuplu slab.