Junior — Middle
Ինչպե՞ս է կատարվում տեղեկատվության փոխանակումը Fragment և Service միջև BroadcastReceiver-ի օգտագործմամբ։
sobes.tech AI
Պատասխան AI-ից
Android-ում BroadcastReceiver-ի միջոցով Fragment և Service միջև տեղեկատվության փոխանակումը տեղի է ունենում հետևյալ կերպ՝
- Service ուղարկում է լայնարձակ հաղորդագրություն
sendBroadcast(Intent)կամLocalBroadcastManagerօգտագործելով: - Fragment գրանցում է
BroadcastReceiver, որը լսում է որոշ գործողություններ (action) ինտենտում: - Երբ Service ուղարկում է broadcast, գրանցված
BroadcastReceiver-ը ստանում է 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-ներին փոխանակել տվյալները ասինխրոն և թույլ կապով։