Sobes.tech
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:

  1. Service nosūta plašsaziņas ziņojumu, izmantojot sendBroadcast(Intent) vai LocalBroadcastManager.
  2. Fragment reģistrē BroadcastReceiver, kas klausās noteiktas darbības (action) intencijā.
  3. Kad Service nosūta broadcast, reģistrētais BroadcastReceiver Fragmentā 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.