AlarmManager in Android in Hindi
RGPV University / DIPLOMA_CSE / MOBILE COMPUTING
AlarmManager in Android
AlarmManager in Android
AlarmManager in Android in Hindi
Android में AlarmManager एक महत्वपूर्ण कक्षा (class) है, जिसका उपयोग किसी निश्चित समय पर या किसी निश्चित अंतराल पर कार्यों को निर्धारित करने (schedule) के लिए किया जाता है। इसका मुख्य कार्य बैकग्राउंड में काम करते समय शेड्यूल्ड टास्क को निष्पादित करना है। उदाहरण के लिए, यदि आप चाहते हैं कि आपका एप्लिकेशन हर सुबह एक निश्चित समय पर एक कार्य करें, तो आप AlarmManager का उपयोग कर सकते हैं।
इसका उपयोग विशेष रूप से तब किया जाता है जब आप चाहते हैं कि आपका एप्लिकेशन किसी विशेष समय पर या अंतराल पर निष्पादित हो, भले ही एप्लिकेशन बैकग्राउंड में हो या बंद हो।
Features of AlarmManager in Android in Hindi
- अलार्म मैनेजर का मुख्य उद्देश्य समय के आधार पर कार्यों को शेड्यूल करना है।
- यह बैकग्राउंड में काम करते हुए आपके एप्लिकेशन के कार्यों को निष्पादित करने में सक्षम होता है।
- आप इसे एक निर्धारित समय पर एक कार्य या इंटेंट (intent) को निष्पादित करने के लिए उपयोग कर सकते हैं।
- यह बैटरी और सिस्टम रिसोर्सेस की प्रभावी उपयोगिता सुनिश्चित करता है, क्योंकि यह कार्यों को निर्धारित समय पर ही निष्पादित करता है।
- इसे दो प्रकार के अलार्मों में विभाजित किया जाता है: Exact Alarm और Inexact Alarm।
- यह ऐप को विभिन्न स्थितियों में कार्य करने की अनुमति देता है, जैसे कि सिस्टम को बंद करने के बाद भी कार्य करना।
- आप इसे ऐप के बंद होने के बाद भी कार्यों को शेड्यूल करने के लिए इस्तेमाल कर सकते हैं।
Types of Alarms in AlarmManager in Hindi
- Exact Alarm: इस प्रकार के अलार्म में कार्य को एकदम निर्दिष्ट समय पर निष्पादित किया जाता है। यह समय बहुत ही सटीक होता है और यह उस समय को हमेशा प्राथमिकता देता है। इसे टाइमिंग में अधिक सटीकता चाहिए होती है।
- Inexact Alarm: इस प्रकार के अलार्म में समय का निर्धारण थोड़ा लचीला होता है। यह शेड्यूल किए गए कार्य को निर्धारित समय से थोड़ा पहले या बाद में निष्पादित कर सकता है। यह बैटरी की खपत को कम करने के लिए होता है और जब सिस्टम में लोड अधिक होता है, तो इसे प्राथमिकता दी जाती है।
- RTC Alarm: यह समय को UTC (Coordinated Universal Time) के अनुसार निर्धारित करता है। इसका उपयोग उस समय कार्यों को निर्धारित करने के लिए किया जाता है, जब डिवाइस का समय समान हो।
- ELAPSED REALTIME Alarm: यह समय को सिस्टेम के बूट समय से लेकर निर्धारित करता है, यानी यह सिस्टेम के चालू होने के समय से मेल खाता है। यह केवल जब डिवाइस सक्रिय हो, तब काम करता है।
Code Example - Using AlarmManager in Android
यहां एक उदाहरण है कि आप किस प्रकार AlarmManager का उपयोग कर सकते हैं:
// AlarmManager को प्राप्त करना
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
// Intent को सेट करना
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
// अलार्म सेट करना
long triggerAtMillis = System.currentTimeMillis() + 5000; // 5 सेकंड बाद अलार्म
alarmManager.set(AlarmManager.RTC_WAKEUP, triggerAtMillis, pendingIntent);
यह कोड 5 सेकंड बाद एक अलार्म सेट करेगा, जो कि AlarmReceiver को कॉल करेगा।
Important Considerations
- यदि आपका एप्लिकेशन बैकग्राउंड में है, तो यह सुनिश्चित करें कि अलार्म कार्य कर रहा है। इसके लिए WakefulBroadcastReceiver का उपयोग किया जा सकता है।
- Android 6.0 (API level 23) और इसके बाद के संस्करणों में, आपको Runtime Permissions की आवश्यकता हो सकती है, खासकर यदि आप बैकग्राउंड में कार्य करना चाहते हैं।
- अलार्म सेट करते समय यह सुनिश्चित करें कि आप Battery Optimization को ध्यान में रखते हुए Inexact Alarm का उपयोग करें।
FAQs
AlarmManager एक Android क्लास है, जिसका उपयोग बैकग्राउंड में कार्यों को शेड्यूल करने के लिए किया जाता है। यह एप्लिकेशन को एक निर्दिष्ट समय या समय के अंतराल पर कार्यों को निष्पादित करने की अनुमति देता है।
AlarmManager का मुख्य कार्य समय के आधार पर कार्यों को शेड्यूल करना है। यह एप्लिकेशन को बैकग्राउंड में होने के बावजूद कार्यों को निष्पादित करने की अनुमति देता है। इसके अलावा, यह बैटरी की खपत को कम करने के लिए Inexact और Exact अलार्म का समर्थन करता है।
AlarmManager में मुख्य रूप से चार प्रकार के अलार्म होते हैं: Exact Alarm, Inexact Alarm, RTC Alarm और Elapsed RealTime Alarm। इनका उपयोग विभिन्न परिस्थितियों के आधार पर किया जाता है।
आप AlarmManager का उपयोग करके एक अलार्म इस प्रकार सेट कर सकते हैं:
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
long triggerAtMillis = System.currentTimeMillis() + 5000; // 5 सेकंड बाद अलार्म
alarmManager.set(AlarmManager.RTC_WAKEUP, triggerAtMillis, pendingIntent);
यह कोड 5 सेकंड बाद अलार्म सेट करेगा, जो कि AlarmReceiver को कॉल करेगा।
Exact Alarm में कार्य एकदम निर्दिष्ट समय पर निष्पादित होता है, जबकि Inexact Alarm में समय थोड़ा लचीला होता है और कार्य निर्धारित समय से पहले या बाद में निष्पादित हो सकता है।
आप बैकग्राउंड कार्यों के लिए AlarmManager का उपयोग WakefulBroadcastReceiver के साथ कर सकते हैं, ताकि डिवाइस बंद होने पर भी कार्य निष्पादित हो सके। यह सुनिश्चित करता है कि बैकग्राउंड में कार्य करते समय अलार्म निष्पादित हो।