Sobes.tech
Junior — Middle

Hogyan valósul meg az információcsere a Fragment és a Service között a BroadcastReceiver használatával?

sobes.tech MI

Válasz az MI-től

Az információcsere a Fragment és a Service között BroadcastReceiver segítségével Androidban a következőképpen történik:

  1. Service broadcast üzenetet küld sendBroadcast(Intent) vagy LocalBroadcastManager segítségével.
  2. Fragment regisztrál egy BroadcastReceiver-t, amely figyeli az intentben lévő bizonyos akciókat.
  3. Amikor a Service elküldi a broadcastot, a Fragmentben regisztrált BroadcastReceiver megkapja az Intentet és feldolgozza az adatokat.

Példa:

// Service-ben
val intent = Intent("com.example.ACTION_DATA")
intent.putExtra("data", "Helló a Service-ből")
sendBroadcast(intent)

// Fragmentben
private val receiver = object : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        val data = intent?.getStringExtra("data")
        // Az adatok feldolgozása
    }
}

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

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

Ez a megközelítés lehetővé teszi, hogy a Service és a Fragment aszinkron módon és alacsony kötöttséggel cseréljenek adatokat.