Alarm manager واستخدامه في برمجة تطبيقات اندرويد بشكل بسيط

بسم الله الرحمن الرحيم

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

سنتكلم اليوم عن موضوع مهم للغاية ويستخدم كثيرا في البرامج وهو المنبه Alarm  وكيفية استخدامه في التطبيقات .

سنستعمل كلاس Alarm Manager

أولا : يجب علينا تحديد الأكتيفيتي المراد الذهاب عند انتهاء الوقت .

ثانيا : سنستخدم Pending intent وهو intent خاص يستخدم لأنواع محددة من التطبيقات ( Alarm , Notification ) ويتميز بأنه يحتاج إلى :

  • context .
  • request code وهذا الكود الخاص ب alarm manager وهو ما يميزه عن باقي alarm managers (  عبارة عن int ) .
  • intent .
  • flag سنضع في هذه الخانة PendingIntent.FLAG_UPDATE_CURRENT وتعني انه ممكن أن نستعمل ال pending intent و المنبه مرة أخرى , و إن كنت لن تستخدمه سوى مرة واحدة في كل التطبيق ولمرة واحدة بإمكانك وضع 0 ولكن أنا أفضل وضع PendingIntent.FLAG_UPDATE_CURRENT في كل الحالات .

سنتكلم عنه بالتفصيل في دروس لاحقة .

ثالثا : سنستخدم كلاس Alarm manager :

get System Service اي أننا سنجلب خدمة محددة .

رابعا : سنضبط المنبه بدالة set التي لها ثلاث باراميترات :

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

  • الباراميتر الثاني هو المدة المطلوبة ونكتب أولا : System.currentTimeMillis() أي جلب الوقت من الآن + المدة المطلوبة بالميلي ثانية ( أي كل 1000 ميلي ثانية تساوي 1 ثانية ) .
  • الباراميتر الثالث والأخير لدالة set هو pending intent وقد ضبطناه سابقا .

يصبح شكل الدلة في الأخير :

ولإلغاء المنبه نستخدم دالة cancel :

ولها باراميتر واحد هو pending intent وقد ضبطناه سابقا .


 

سنتكلم عن أمر أنه في حال احتجنا الى ايقاف المنبه من خارج الاكتيفيتي التي انشأناه فيها فكل ماعلينا إعادة كتابة الكود بنفس request code ووضع دالة cancel بدل من set .

نعطي مثال :

ملف اللياوت ل first.java :

وضعنا 2 button لبدأ المنبه وإيقافه و 1 EditText لتحديد الزمن ووحددنا نوعية الإدخال ارقام فقط .

وملف الجافا first.java :

 

وفي ملف الجاف عرفنا EditText و 2 button و AlarmManager .

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

بشرط أن يكون النص s رقم فعليا ووضعه وقت لمنبه ثم تشغيله للذهاب للاكتيفيتي الأخرى second وهي اكتيفيتي عادية لاتحوي شيء .

ومهمة الزر الثاني cancel إيقاف المنبه المضبوط سابقا .

أتمنى أن أكون ذكرت كل شيء … بإذن ستم إعداد دروس متقدمة لغير استخدام ..

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

عن محمد معتز الشاغل

محمد معتز ، شاب سوري من حلب ، مواليد 2000 ، شغوف بالبرمجة وبرمجة الأندرويد خاصة وعالم التقنية بشكل عام ، محب للشعر العربي ، أسعى لتطوير نفسي من الانترنت بكل ماهو مفيد ، أعجبني موقع أندرودي بتدويناته البسيطة والمفيدة .

شاهد أيضاً

عملية تسجيل الدخول لتطبيقك الأندرويد عن طريق الفيس بوك بإستخدام جوجل فايربيس

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

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *