انشاء الـ Broadcast Receiver بشكل ديناميكي

Mohammad Laifمنذ 5 سنوات

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

 

في الدرس السابق رأينا طريقة انشاء الـ Broadcast بشكل ثابت في من خلال ملف الـ mainfiest.xml. في هذا الدرس سنقوم بعمله بشكل ديناميكي اي من خلال الشفرة البرمجية في كلاسات الجافا.

 

يمتاز هذا النوع بانه يقبل احداث Actions تفوق صلاحيات النوع الاول.

 

متى نستخدم الـ Broadcast بشكل Dynamic

نستخدم هذه الطريقة اذا اردنا Receiver بشكل مؤقت, اي ليس دائم كالسابق. فنحن هنا لانريد التنصت على احداث المستخدم على مدار الساعة. نريد فقط التنصت على الاحداث لوقت معين, مثلاً نريد فقط ان يقوم بالتنصت مادامت Activity حيه.
 

انشاء الـ 

انشاء الـ Broadcast بشكل Dynamic

الخطوات

  • ننشئ حقل للكلاس الـ Broadcast Receiver الذي قمنا بإنشائها.
  • نعمل له init في دالة الـ onCreate.
  • نقوم بتحديد نوع الحدث في دالة الـ onResume.
  • نعمل له تسجيل register في دالة الـ onResume.
  • نعمل له الغاء التسجيل unregister في دالة الـ onPause (حتى لايحدث تسريب للذاكرة).

 

انشاء الحقل للـ Broadcast Receiver:

private MyFirstReceiver mMyFirstReceiver;

قمنا بعمل هذة الكلاس في الدرس السابق.

 

عمل Init له في دالة الـ onCreate:

mMyFirstReceiver = new MyFirstReceiver();

 

نحدد نوع الحدث في دالة الـ onResume:

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.intent.action.AIRPLANE_MODE");

 

عمل تسجيل في دالة الـ onResume:

    @Override
    protected void onResume() {
        super.onResume();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("android.intent.action.AIRPLANE_MODE");
        registerReceiver(mMyFirstReceiver, intentFilter);
    }

في الدرس السابق قمنا بهذه الخطوة بإستخدام الملف AndroidManifest.xml.

 

عمل الغاء التسجيل في دالة الـ onPause:

    @Override
    protected void onPause() {
        super.onPause();
        unregisterReceiver(mMyFirstReceiver);
    }

 

نستطيع ايضاً انشائه سريعاً كحقل كالشكل التالي:

    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            
        }
    };

في هذه الحالة لانحتاج لإنشاء كلاس للبرودكاست. ولكننا نحتاج الى تسجيله والغائه كذلك في دوال الـ onResume والـ onPause كما هو مشابهه في الخطوات السابقة.

 

طريقة تشغيلة من الـ Activity:

من خلال الـ Intent والدالة SendBroadcast مشابه لما جاء في الدرس الاول.

 

في هذا الدرس رأينا طريقة استخدام الـ Broadcast Receiver بشكل ديناميكي اي من خلال شفرة الـ Java. وايضاً تعرفنا على طريقة التسجيل والالغاء له. في الدرس القادم سنقوم بإستخدام الـ Broadcast Receiver كـ Locally حتى يتسنى لنا نقل البيانات بين المكونات.

 

رابط الكلاسات المستخدمه في هذا الدرس

للحصول على رابط المشروع راجع درس المقدمة.
 

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

للمزيد راجع درس المقدمة.

 

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

المحاضر

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 إعجاب
2 متابع
0 مشاركة
1881 مشاهدات
منذ 5 سنوات

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

manar1984:

ربنا يوفقك علي ما تقدمة من ابداع وتميز 

مركز تحميل الملفات

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

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