تعرف على الـ Broadcast Receiver

Mohammad Laifمنذ 3 سنوات

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

 

الـ Broadcast Receiver يعتبر مكون هام في نظام الاندرويد (المكونات هي Actiivty و Service و Broadcast Receivers و Content Providers) ومعرفتك به ستجعلك مطور افضل للتطبيقات.

 

ماهو الـ Broadcast
الترجمه العربيه هي البث, اي لبث ونشر الاحداث.
مثال واقعي: عند وجود حدث يهم الطلاب كالاجازات في العواصف, تقوم الاذاعه ببث هذا الخبر من خلال ابراج البث.

 

ماهو الـ Receiver

الترجمه العربيه هي المتلقي او المستقبل.
مثال واقعي: يقوم الطالب بتشغيل التلفاز ووضعه على القناه المحدد لإستقبال الاخبار التي تهمه وسوف يتلقى بالتأكيد خبر الاجازة.

 

لاحظ ايضاً ان الموظف لم يستقبل هذا البث لماذا؟ ذلك يعود الى انه واضع قناة الرياضه فهو هنا يريد فقط الاخبار المتعلقه بالرياضه.

 

ماهو الـ Broadcast Receiver في نظام الاندرويد

كل امر يقوم به المستخدم في هاتفه يولد حدث وبعض هذه الاحداث قد تنشئ من تلقاء نفسها من النظام.

مثال لتقريب المعنى: المستخدم قام بفتح شاشة الجوال, المستخدم قام بأخد صورة جديدة, المستخدم قام بالاتصال بشكبة انترنت, انخفاظ في بطارية الهاتف, احد الاصدقاء قام بالاتصال على المستخدم.
كل هذه الاشياء تسمى احداث يقوم نظام الاندرويد ببث (Broadcast) هذه الاحداث, ولكن فقط التطبيق التي يريد الاستماع لها (Receiver) هو الذي تصله. لذلك اذا اردت الاستماع لهذه الاحداث في تطبيقك يجب عليك استخدام المكون Receiver. ومن الناحيه الاخرى تستطيع ارسال احداث كذلك باستخدام نفس المكون Broadcast (كما سنقوم لاحقاً بإستخدام الـ Local Broadcast لإرسال حدث يحتوي على بيانات من كلاس Service الى كلاس Activity في هذا الدرس: استخدام الـ Local Broadcast للتخاطب مع الـ Started Service).

 

الاشياء التي تستخدم جنباً الى جنب مع الـ Broadcast Receiver

  • الـ Intent.
  • الـ Job Service (كـ JobSchedualer او JobDispatcher وماشابههما).
  • انماط التصميم للخيوط الحاسوبيه (وذلك بسبب ان الـ Broadcast يعمل في الخيط الحاسوبي الرئيسي).

 

لماذا علي استخدام Job Service (كـ JobSchedualer او JobDispatcher) مع الـ Broadcast Receiver؟

لنفرض انك تريد الانصات للحدث "التقاط صوره بواسطة تطبيق الكاميرا" حتى تصنع تطبيق يقوم بتنشيط نفسه واظهار خيارات للمستخدم حول هذه الصوره كـ رفعها الى الانترنت او التعديل عليها او حفظها كملاحظة. تخيل الان لو ان وجد في جهاز المستخدم ١٠ تطبيقات يقومون بالاستماع لهذا الحدث وسوف يتفعلون تلقائياً عند حدوثه! ماذا ستكون النتيجه؟ بالتأكيد بطئ في هاتف المستخدم وربما تمتلئ الذاكره ويفشل تطبيق الكاميرا في التقاط او حفظ الصورة. لذلك يجب علينا استخدام الـ JobSchedualer او احد الطرق الشبيهه له حتى نصنع نافذه زمنيه من خلالها يرى النظام الوقت المناسب لتنشيط التطبيق (اشياء سنتعرف عليها لاحقاً). 

 

قائمة بالاحداث التي يرسلها الـ Android

تستطيع الطلاع على قائمة الاحداث عن طريق احد الطرق التاليه:

  • من خلال موقع المطورين للإندرويد, مقالة الـ Intent.
  • من خلال ملف الـ broadcast_actions.txt الموجود في المسار SDK -> platforms -> android-28 -> data -> broadcast_actions.txt.
  • من خلال استخدام Auto Compelte في Android Studio عندما تريد كتابة اسم الـ Action في ملف الـ Mainfest.xml.

 

في هذا الدرس تعرفنا على الـ Broadcast Receiver. في الدروس القادمة سنقوم بإستخدامة في امثله متنوعه.

 

المصادر والمراجع

 

نهاية الدرس
لاتنسى تتبع الدرس والدورة كذلك لإشعارك عندما يتم التعديل على المتحوى او اضافة المزيد من المعلومات. ايضاً لاتنسى الاعجاب بالدرس ومشاركته مع الاخرين.

المحاضر

Mohammad Laif

محتوى الدورة

تمهيد
1 مقدمة
2 تعرف على التزامن (الـ Concurrency)
3 اخطاء التزامن (الـ Concurrency) الشائعة
العمليات Processes
1 الهيكلة الهندسية لبيئة نظام الاندرويد
2 طبقة الـ Android Runtime و العمليات Processes
3 انواع العمليات (Processes)
الخيوط الحاسوبية Threads
1 الخيوط الحاسوبية (Threads)
2 مكونات الخيوط الحاسوبية (Thread)
3 انشاء الخيط الحاسوبي
أنماط التصميم للخيوط الحاسوبية
1 انشاء نمط الـ Handler و Looper و Thread
2 انشاء نمط الـ HandlerThreads
3 ماهو نمط الـ Thread Pools (الـ Executors)
4 استخدام نمط الـ Thread Pools كـ Singleton
5 استخدام الـ Callable مع نمط الـ Thread Pools
6 انشاء بركة خيوط حاسوبية Thread Pools لتسريع قاعدة البيانات
7 انشاء نمط الـ AsyncTask
8 انشاء نمط الـ Loader
الـ Broadcasts
1 تعرف على الـ Broadcast Receiver الدرس الحالي
2 انشاء الـ Broadcast Receiver بشكل ثابت
3 انشاء الـ Broadcast Receiver بشكل ديناميكي
4 استخدام الـ Local Broadcast للتخاطب بين المكونات
الـ Services
1 تعرف على الـ Services
2 انشاء الـ Started Service
3 انشاء الـ Intent Service
4 انشاء الـ Bound Service
5 استخدام الـ ResultReceiver للتخاطب مع الـ Intent Service
6 استخدام الـ Broadcast للتخاطب مع الـ Started Service
الـ Alarm Manager
1 تعرف على الـ Alarm Manager
2 طرق استخدام الـ Alarm Manager
الـ Jobs
1 استخدام الـ Android JobSchedualer
2 استخدام الـ Firebase JobDispatcher
3 استخدام الـ WorkManager من حزمة JetPack

الكلمات الدليلية

عن الدرس

0 إعجاب
1 متابع
0 مشاركة
2209 مشاهدات
منذ 3 سنوات

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !