Middle
Кайсы BroadcastReceiver түрлөрүн билесиз?
sobes.tech AI
AIден жооп
-
Тартиптелген тарату:
- Тарату алушыларға кезек-кезек жеткізіледі, бірінен соң бірі.
- Әр алушы тарату нәтижесін өңдей немесе өзгерте алады, сондай-ақ оны тоқтата алады, сонда ол келесі алушыларға жетпейді.
- Жеткізу тәртібі алушының басымдылығымен анықталады (
android:priorityманифестте).
-
Қалыпты тарату:
- Ең кең таралған түрі.
- Тарату хабарламасы бірден барлық қызығушылық танытқан алушыларға жіберіледі, олар манифестте жарияланған немесе динамикалық түрде (
Context.registerReceiver()арқылы) тіркелген. - Хабарламаларды алу тәртібі кепілденбеген.
- Алушы таратуын тоқтата алмайды.
-
Жергілікті тарату:
- Тек бір қосымша шеңберінде хабарламалармен алмасу үшін пайдаланылады.
LocalBroadcastManagerкласы жүзеге асырады.- Бұл тиімдірек және қауіпсізірек, себебі хабарламалар қосымшаның шегінен шықпайды және басқа жүйе қосымшаларына әсер етпейді.
- Манифестте алушыларды жариялауды талап етпейді.
- Жүйенің жүктемесін азайтады, глобалды таратуға қарағанда:
// Динамикалық BroadcastReceiver тіркеу мысалы
BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Хабарламаны өңдеу логикасы
}
};
IntentFilter filter = new IntentFilter("MY_ACTION");
registerReceiver(myReceiver, filter);
// Қалыпты тарату мысалы
Intent broadcastIntent = new Intent("MY_ACTION");
sendBroadcast(broadcastIntent);
// LocalBroadcastManager қолдану мысалы
// Объектіні алу
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this);
// Тіркеу
localBroadcastManager.registerReceiver(myReceiver, filter);
// Жіберу
localBroadcastManager.sendBroadcast(broadcastIntent);
// Тартиптелген тарату жіберу мысалы
// sendOrderedBroadcast(orderedBroadcastIntent, null); // permission көрсетуге болады