Junior — Middle
Kā notiek informācijas apmaiņa starp Fragment un Service, izmantojot BroadcastReceiver?
sobes.tech AI
Atbilde no AI
Informācijas apmaiņa starp Fragment un Service caur BroadcastReceiver Android notiek šādi:
- Service nosūta plašsaziņas ziņojumu, izmantojot
sendBroadcast(Intent)vaiLocalBroadcastManager. - Fragment reģistrē
BroadcastReceiver, kas klausās noteiktas darbības (action) intencijā. - Kad Service nosūta broadcast, reģistrētais
BroadcastReceiverFragmentā saņem Intent un apstrādā datus.
Piemērs:
// Service
val intent = Intent("com.example.ACTION_DATA")
intent.putExtra("data", "Sveiki no Service")
sendBroadcast(intent)
// Fragment
private val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
val data = intent?.getStringExtra("data")
// Saņemto datu apstrāde
}
}
override fun onStart() {
super.onStart()
val filter = IntentFilter("com.example.ACTION_DATA")
requireContext().registerReceiver(receiver, filter)
}
override fun onStop() {
super.onStop()
requireContext().unregisterReceiver(receiver)
}
Šī pieeja ļauj Service un Fragment apmainīties ar datiem asinhroni un ar zemu saistību līmeni.