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ă:
- Service trimite un mesaj broadcast folosind
sendBroadcast(Intent)sauLocalBroadcastManager. - Fragment înregistrează un
BroadcastReceiver, care ascultă anumite acțiuni (action) în intent. - 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.