انشاء الـ Broadcast Receiver بشكل ثابت
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
في الدرس السابق تعرفنا على الـ Broadcast Receiver. في هذا الدرس سنقوم بأنشائه بشكل ثابت (Static).
ملاحظة: الـ Broadcast Receiver يتم تشغيله في الخلفيه ولكن في الخيط الرئيسي بشكل غير متزامن (Asynchronous, اي ربما يقوم بالعمل قبل الاسطر البقية التي قبله), لذلك اي عملية طويلة نقوم بإجرائها فيه سوف تسبب في بطئ التطبيق. ولحل هذه المشكلة نستطيع استخدام احد انماط التصميم للخيوط الحاسوبية.
انشاء كلاس الـ Broadcast Receiver
الخطوات
- ننشئ كلاس تقوم بعمل extends لكلاس الـ BroadcastReceiver.
- نعمل Override للدالة onReceive.
- نسجل الكلاس كـ Broadcast Receiver في ملف الـ manifest.xml.
انشاء كلاس تقوم بعمل extends لكلاس الـ BroadcastReceiver:
public class MyFirstReceiver extends BroadcastReceiver {}
عمل Override للدالة onReceive:
@Override
public void onReceive(Context context, Intent intent) {
}
تسجيل الكلاس كـ Broadcast Receiver في ملف الـ manifest.xml:
<receiver android:name=".broadcast.MyFirstReceiver">
<!--Actions-->
</receiver>
طريقة تشغيلة من الـ Activity:
Intent intent = new Intent(Main7Activity.this, MyFirstReceiver.class);
sendBroadcast(intent);
بأستخدام الـ Intent ومن خلال الدالة SendBroadcast نقوم بإرسال امر التشغيل من الـ Activity. حتى تعمل الشفرة البرمجية الموجودة في دالة الـ onReceive بكلاس البرودكاست.
تحديد حدث خاص بنا (Action)
نستطيع ايضاً تحديد حدث خاص بالـ Broadcast الذي انشئناه باستخدام الـ Intent Filter كالتالي:
في ملف الـ manifest.xml:
<receiver android:name=".broadcast.MyFirstReceiver">
<intent-filter>
<action android:name="my.custom.action.name"/>
</intent-filter>
</receiver>
طريقة تشغيلة من الـ Activity:
Intent intent2 = new Intent("my.custom.action.name");
sendBroadcast(intent2);
ملاحظة: نستطيع تمرير بيانات الى الـ Broadcast Receiver الخاص بنا بوضعهم بداخل الـ Intent بمساعدة الدالة putExtra() سواء متفرقين او على شكل Bundle. وهذا الشئ يساعدنا في نقل البيانات بين المكونات كما سنرى في الدرس: استخدام الـ Local Broadcast للتخاطب مع الـ Started Service.
استخدام احداث هاتف المستخدم لتشغيل الـ Broadcast Receiver
هنا تكمن قوة الـ Receiver, فنحن اساساً نريد تفعيل هذه الكلاس التي انشئناها عندما يطرئ حدث ما في جهاز المستخدم, ونستطيع ذلك حسب الخطوات التاليه:
في ملف الـ manifest.xml:
<receiver android:name=".broadcast.MyFirstReceiver">
<intent-filter>
<action android:name="android.intent.action.AIRPLANE_MODE"/>
</intent-filter>
</receiver>
لاحظ الـ Action وهو خاص بوضع الطيران. اي اذا قام المستخدم بتفعيل وضع الطيران في هاتفه فسوف يعمل تطبيقنا ويفعل الشفرة البرمجية الموجودة في كلاس البرودكاست.
في هذا الدرس رأينا طريقة استخدام الـ Broadcast Receiver بشكل ثابت, وايضاً تعرفنا على طريقة تشغيله ومن ابرزها طريقة تشغيله بإستخدام الاحداث التي تنتج من جهاز المستخدم. في الدرس القادم سنقوم بإستخدام الـ Broadcast Receiver بشكل ديناميكي.
الكلاسات المستخدمه في هذا الدرس
- تم استخدام MyFirstReceiver.java في Main7Activity.java.
للحصول على رابط المشروع راجع درس المقدمة.
المصادر والمراجع
راجع درس تعرف على الـ Broadcast Receiver.
للمزيد راجع درس المقدمة.
نهاية الدرس
لاتنسى تتبع الدرس والدورة كذلك لإشعارك عندما يتم التعديل على المتحوى او اضافة المزيد من المعلومات. ايضاً لاتنسى الاعجاب بالدرس ومشاركته مع الاخرين.
محتوى الدورة
الكلمات الدليلية
عن الدرس
0 إعجاب |
1 متابع |
0 مشاركة |
2150 مشاهدات |
منذ 5 سنوات |
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !