Junior — Middle
BroadcastReceiver аркылуу Fragment жана Service ортосунда маалымат алмашуу кандай жүргүзүлөт?
sobes.tech AI
AIден жооп
Androidда BroadcastReceiver аркылуу Fragment жана Service ортосунда маалымат алмашуу төмөндөгүчө жүргүзүлөт:
- Service
sendBroadcast(Intent)жеLocalBroadcastManagerколдонуп кеңири таратуу билдирүүсүн жиберет. - Fragment белгилүү аракеттерди (action) угуп турган
BroadcastReceiverкатталат. - Service broadcast жибергенде, Fragmentте катталган
BroadcastReceiverIntentти алат жана маалыматтарды иштетет.
Мисал:
// 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 ортосунда маалыматтарды асинхрон жана алыс байланышта алмашууга мүмкүндүк берет.