उदाहरण में आने से पहले, हमें पता होना चाहिए कि android में Intent service क्या है। इंटेंट सर्विस एसिंक्रोनस रूप से बैक ग्राउंड ऑपरेशन करने जा रही है। जब उपयोगकर्ता गतिविधि से startService() को कॉल करता है, तो यह प्रत्येक अनुरोध के लिए उदाहरण नहीं बनाता है। सेवा वर्ग में कुछ कार्रवाई करने के बाद यह सेवा बंद करने जा रहा है या फिर हमें स्टॉपसेल्फ़ () का उपयोग करके सेवा को रोकने की आवश्यकता है।
यह उदाहरण प्रदर्शित करता है कि प्रत्येक 10 सेकंड के लिए इंटेंट सेवा कैसे शुरू करें।
चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।
चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।
<टेक्स्ट व्यू एंड्रॉइड:आईडी ="@ + आईडी / टेक्स्ट" एंड्रॉइड:लेआउट_विड्थ ="रैप_कंटेंट" एंड्रॉइड:लेआउट_हाइट ="रैप_कंटेंट" एंड्रॉइड:टेक्स्ट ="स्टार्ट सर्विस" एंड्रॉइड:टेक्स्टसाइज =" 25sp" ऐप:layout_constraintBottom_toBottomOf ="पैरेंट" ऐप:layout_constraintLeft_toLeftOf ="पैरेंट" ऐप:layout_constraintRight_toRightOf ="पैरेंट" ऐप:layout_constraintTop_toTopOf ="parent" /> उपरोक्त कोड में, हमने टेक्स्ट व्यू लिया है, जब उपयोगकर्ता को इंटेंट सर्विस से डेटा मिलता है तो वह अपडेट हो जाएगा। चरण 3 - निम्न कोड को src/MainActivity.java
में जोड़ें <पूर्व>पैकेज com.example.andy.myapplication;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android. os.Handler;import android.support.v4.content.LocalBroadcastManager;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.TextView;import java.util.Timer;import java. util.TimerTask;सार्वजनिक वर्ग MainActivity AppCompatActivity को बढ़ाता है { TextView टेक्स्ट; BroadcastReceiver BroadcastReceiver =new BroadcastReceiver() {@Override public void onReceive(संदर्भ संदर्भ, आशय आशय) { String someValue =Intent.getStringExtra("someName"); text.setText (कुछ वैल्यू); } }; @ ओवरराइड संरक्षित शून्य ऑनस्टार्ट () {super.onStart (); इंटेंटफिल्टर इंटेंटफिल्टर =नया इंटेंटफिल्टर (); IntentFilter.addAction ("com.example.andy.myapplication"); LocalBroadcastManager.getInstance(this).registerReceiver(broadcastReceiver, IntentFilter); } @Override संरक्षित शून्य onCreate (बंडल सेव्ड इंस्टेंसस्टेट) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); टेक्स्ट =findViewById (R.id.text); अंतिम हैंडलर हैंडलर =नया हैंडलर (); TimerTask timertask =नया TimerTask () {@Override public void run() {handler.post(new Runnable() { public void run() { startService(new Intent(MainActivity.this, service.class)); }}); } }; टाइमर टाइमर =नया टाइमर (); टाइमर शेड्यूल (टाइमरटास्क, 0, 10000); } @Override संरक्षित शून्य onStop() {super.onStop(); LocalBroadcastManager.getInstance(this).unregisterReceiver(broadcastReceiver); }}पूर्व>service.class फ़ाइल नामक एक क्लास बनाएं और निम्न कोड जोड़ें -
पैकेज com.example.andy.myapplication;import android.app.IntentService;import android.content.Intent;import android.os.IBinder;import android.support.v4.content.LocalBroadcastManager; पब्लिक क्लास सर्विस इंटेंट सर्विस का विस्तार करती है { सार्वजनिक स्थैतिक अस्थिर बूलियन चाहिए स्टॉप =झूठा; सार्वजनिक सेवा () { सुपर (service.class.getSimpleName ()); } @Override सार्वजनिक IBinder onBind(इरादा आशय) {वापसी शून्य; } @ ओवरराइड संरक्षित शून्य onHandleIntent (इरादा इरादा) {इरादा इरादा 1 =नया इरादा ("com.example.andy.myapplication"); Intent1.putExtra ("someName", "Tutorialspoint.com"); LocalBroadcastManager.getInstance(this).sendBroadcast(intent1); अगर (चाहिए स्टॉप) {स्टॉपसेल्फ (); वापसी; } }}पूर्व>चरण 4 -मेनिफेस्ट.xml में निम्न कोड जोड़ें
<उपयोग-अनुमति एंड्रॉइड:नाम ="android.permission.WAKE_LOCK"/> "एंड्रॉइड:राउंडआईकॉन =" @ मिपमैप / आईसी_लॉन्चर_राउंड "एंड्रॉइड:सपोर्ट आरटीएल ="ट्रू" एंड्रॉइड:थीम ="@ स्टाइल / ऐपथीम"> ="android.intent.action.MAIN" /> <श्रेणी android:name ="android.intent.category.LAUNCHER" /> एप्लिकेशन>प्रकट> आइए अपना एप्लिकेशन चलाने का प्रयास करें। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक खोलें और टूलबार से रन आइकन पर क्लिक करें। एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा -
उपरोक्त परिणाम में, इसने एप्लिकेशन की डिफ़ॉल्ट स्क्रीन दिखाई। हर 10 सेकंड में, यह सेवा शुरू करेगा और बैक ग्राउंड से डेटा की जांच करेगा और डेटा को अपडेट करेगा।