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:
- Service broadcast üzenetet küld
sendBroadcast(Intent)vagyLocalBroadcastManagersegítségével. - Fragment regisztrál egy
BroadcastReceiver-t, amely figyeli az intentben lévő bizonyos akciókat. - Amikor a Service elküldi a broadcastot, a Fragmentben regisztrált
BroadcastReceivermegkapja 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.