انشاء الـ Broadcast Receiver بشكل ديناميكي
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
في الدرس السابق رأينا طريقة انشاء الـ 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 حتى يتسنى لنا نقل البيانات بين المكونات.
رابط الكلاسات المستخدمه في هذا الدرس
- في كلاس الـ Main7Activity.
للحصول على رابط المشروع راجع درس المقدمة.
المصادر والمراجع
- راجع درس تعرف على الـ Broadcast Receiver.
للمزيد راجع درس المقدمة.
نهاية الدرس
لاتنسى تتبع الدرس والدورة كذلك لإشعارك عندما يتم التعديل على المتحوى او اضافة المزيد من المعلومات. ايضاً لاتنسى الاعجاب بالدرس ومشاركته مع الاخرين.
محتوى الدورة
الكلمات الدليلية
عن الدرس
0 إعجاب |
2 متابع |
0 مشاركة |
2039 مشاهدات |
منذ 5 سنوات |
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !