تعرف على الـ Broadcast Receiver
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
الـ 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. في الدروس القادمة سنقوم بإستخدامة في امثله متنوعه.
المصادر والمراجع
- مقاله مهمه تتحدث عن التغييرات التي حصلت في الـ Actions من بعد الـ API 26 على الرابط: Implicit Broadcast Exceptions.
- Broadcasts overview | Android Developers.
- BroadcastReceiver | Android Developers.
- Implicit Broadcast Exceptions | Android Developers.
- Background Execution Limits | Android Developers.
- <receiver> | Android Developers.
- Intent | Android Developers.
- Intents and Intent Filters | Android Developers.
نهاية الدرس
لاتنسى تتبع الدرس والدورة كذلك لإشعارك عندما يتم التعديل على المتحوى او اضافة المزيد من المعلومات. ايضاً لاتنسى الاعجاب بالدرس ومشاركته مع الاخرين.
محتوى الدورة
عن الدرس
0 إعجاب |
1 متابع |
0 مشاركة |
3327 مشاهدات |
منذ 5 سنوات |
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !