Job Scheduler : को लगाना सीखे + Full demo +Implementation

Spread the love with your friends

Job Scheduler
Job Scheduler

प्यारे दोस्तों, कैसे हो आप सब। आज हम जॉब शेड्यूलर के बारे में बात करेंगे। अधिकांश डेवलपर्स अब इस बात को लेकर भ्रमित हैं कि ओरेओ में नए अपडेट के कारण जॉब शेड्यूलर को कैसे लागू और उपयोग किया जाए।

OREO अपडेट के बाद, Google बैटरी खत्म होने से बचाने के लिए एंड्रॉइड मोबाइल में कुछ सीमाएं लगाता है। इन सीमाओं के कारण डेवलपर्स सेवाओं में भ्रमित हो गए। जब हम ऑनलाइन खोज करते हैं तो हमें अलार्म मैनेजर, जीसीएम नेटवर्क मैनेजर, वर्क मैनेजर और जॉब शेड्यूलर जैसी सेवाओं से संबंधित बहुत सारे विषय मिलते हैं।

उपरोक्त सभी दृष्टिकोण सेवाओं को लागू करने के लिए बहुत अच्छी तरह से हैं और हमने उपरोक्त प्रत्येक विषय पर एक-एक करके विषय भी दिए हैं। आज हम चर्चा करेंगे कि जॉब शेड्यूलर कैसे काम करता है और जावा में एंड्रॉइड स्टूडियो के माध्यम से एंड्रॉइड डिवाइस में जॉब शेड्यूलर को कैसे लागू किया जाए।

तो चलिए विषय शुरू करते हैं:

सबसे पहले मैं जॉब शेड्यूलर का कोड साझा करूंगा:

public class MyJobSch {
 
    // schedule the start of the service every 10 – 30 seconds
    public static void scheduleJob(Context context) {
        ComponentName serviceComponent = new ComponentName(context, Myservice.class);
        JobInfo.Builder builder = new JobInfo.Builder(33, serviceComponent);
        builder.setMinimumLatency(10000); // wait at least
        builder.setOverrideDeadline(6 * 1000); // maximum delay
        builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED); // require unmetered network
        //builder.setBackoffCriteria(10000, JobInfo.BACKOFF_POLICY_LINEAR);
        //builder.setPersisted(true);
        //builder.setRequiresCharging(true); // we don’t care if the device is charging or not
        //builder.setPersisted(true);
        JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
        jobScheduler.schedule(builder.build());
    }
}

प्रिय दोस्तों, मैं एक वर्ग बनाता हूं जिसका नाम है: MyJobSch जो एक सार्वजनिक वर्ग है, इसका मतलब है कि हम अपने कार्यक्रम में हर जगह उस वर्ग तक पहुंच सकते हैं, बिना कोड को बार-बार लागू किए या लिखे।

यह हमारे कोड को छोटा और समझने योग्य बनाता है।

इस क्लास में हम जॉब शेड्यूलर का कोड लिखते हैं। कुछ कोड जिन पर मैंने टिप्पणी की है, तो आइए टिप्पणी कोड को समझते हैं।

  //builder.setBackoffCriteria(10000, JobInfo.BACKOFF_POLICY_LINEAR);
        //builder.setPersisted(true);
        //builder.setRequiresCharging(true); // हमें परवाह नहीं है कि डिवाइस चार्ज हो रहा है या नहीं

टिप्पणी कोड की पहली पंक्ति में, BACKOFF_POLICY_LINEAR नीति है जहां जॉब शेड्यूलर बैक ऑफ के बाद कार्य शुरू करता है।

//builder.setPersisted(true) में;

नौकरी अनुसूचक उपकरणों की दृढ़ता की स्थिति के अनुसार कार्य शुरू करते हैं, यदि आपको इसकी आवश्यकता है तो आप कोड को सक्षम या असम्बद्ध कर सकते हैं।

और कोड की तीसरी पंक्ति में, हम एक कोड टिप्पणी करते हैं जो चार्जिंग के बारे में है, इसका मतलब है कि जब आप इस लाइन को अनसुना करते हैं तो आपका जॉब शेड्यूलर भी स्वचालित रूप से काम करता है, जब आपका डिवाइस चार्जिंग मोड में होता है या हम कह सकते हैं कि जब आप अपना एंड्रॉइड मोबाइल चार्ज करते हैं आपका जॉब शेड्यूलर स्वचालित रूप से खुद को कॉल करता है और सेवा शुरू करता है।

अब हमें जॉब शेड्यूलर द्वारा उत्पन्न सिग्नल प्राप्त करने की आवश्यकता है और जब आपका जॉब शेड्यूलर सक्रिय हो तो ऑपरेशन कैसे करें। तो इस मामले में, हमें एक ब्रॉडकास्ट रिसीवर की आवश्यकता है। तो अब एक ब्रॉडकास्ट रिसीवर बनाएं।

Code for Broadcast Receiver::

public class MyBroadcastReceiver extends BroadcastReceiver {
 
    @Override
    public void onReceive(Context context, Intent intent) {
        MyJobSch.scheduleJob(context); // reschedule the job
    }
}

अब ब्रॉडकास्ट रिसीवर क्लास बनाएं और उपरोक्त कोड पेस्ट करें। मैंने “MyBroadcastReceiver” नाम से एक वर्ग बनाया है।

जैसा कि आप जानते हैं, हर ब्रॉडकास्ट रिसीवर का एक तरीका होता है जो “ऑन रिसीव ()” होता है। इस विधि में आप अपना कोड लिख सकते हैं जहाँ आप अपना कार्य करना चाहते हैं।

यहां मैं जॉब शेड्यूलर का पहला उदाहरण समाप्त होने पर फिर से जॉब शेड्यूलर शुरू करता हूं और फिर “MyJobSch.scheduleJob (संदर्भ); // नौकरी को फिर से शेड्यूल करें” का उपयोग करके नया जॉब शेड्यूलर इंस्टेंस शुरू करता हूं।

जैसा कि हम जानते हैं कि हम “MyJobSch” क्लास में कोड लिखते हैं और फिर उस क्लास का उपयोग करके हम जॉब शेड्यूलर को फिर से शेड्यूल करते हैं। इस एक्सेस मेथड से आप यह भी सीख सकते हैं कि प्रोग्राम में कहीं किसी पब्लिक क्लास की मेथड को कैसे एक्सेस किया जाए।

अब, अंतिम चरण आपके रिसीवर को बांधता है, इसका मतलब है कि मेनिफेस्ट में अपने रिसीवर का उल्लेख करें। मुझे यकीन है कि आप मेनिफेस्ट में गतिविधि और प्रसारण रिसीवर का उल्लेख करना जानते हैं।

नोट: हमें जॉब शेड्यूलर के लिए किसी निर्भरता की आवश्यकता नहीं है, क्योंकि यह जावा में एंड्रॉइड मोबाइल की मुख्य विशेषता है। यह कोई बाहरी पुस्तकालय नहीं है।

तो दोस्तों यह था जॉब शेड्यूलर का सारांश। अगर आपको यह पोस्ट अच्छी लगी हो और हमारे और नए यूजर्स के लिए आपके पास कोई सुझाव हो तो कमेंट बॉक्स में अपनी कीमती बात लिखें। धन्यवाद।


Spread the love with your friends

Leave a Comment

PHP Code Snippets Powered By : XYZScripts.com