Junior — Middle
Чӣ гуна иваз кардани маълумот байни Fragment ва Service тавассути истифодаи BroadcastReceiver анҷом дода мешавад?
sobes.tech AI
Ҷавоб аз AI
Алмасу маълумот байни Fragment ва Service тавассути BroadcastReceiver дар Android ба тариқи зерин сурат мегирад:
- Service паёми широковещательныйро бо истифода аз
sendBroadcast(Intent)ёLocalBroadcastManagerмефиристад. - Fragment як
BroadcastReceiverсабт мекунад, ки амалҳои муайянро дар intent гӯш мекунад. - Вақте ки Service broadcast мефиристад,
BroadcastReceiverсабтшуда дар Fragment Intent-ро мегирад ва маълумотҳоро коркард мекунад.
Масалан:
// Дар Service
val intent = Intent("com.example.ACTION_DATA")
intent.putExtra("data", "Салом аз Service")
sendBroadcast(intent)
// Дар Fragment
private val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
val data = intent?.getStringExtra("data")
// Коркарди маълумотҳои гирифташуда
}
}
override fun onStart() {
super.onStart()
val filter = IntentFilter("com.example.ACTION_DATA")
requireContext().registerReceiver(receiver, filter)
}
override fun onStop() {
super.onStop()
requireContext().unregisterReceiver(receiver)
}
Ин усул имкон медиҳад, ки Service ва Fragment маълумотҳоро асинхрон ва бо камтар пайвастагӣ мубодила кунанд.