Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Android

एंड्रॉइड स्टॉप निर्दिष्ट इंटेंट सेवा?

<घंटा/>

उदाहरण में आने से पहले, हमें पता होना चाहिए कि android में Intent service क्या है। इंटेंट सर्विस एसिंक्रोनस रूप से बैकग्राउंड ऑपरेशन करने जा रही है। जब उपयोगकर्ता गतिविधि से startService () को कॉल करता है, तो यह प्रत्येक अनुरोध के लिए उदाहरण नहीं बनाता है और सेवा वर्ग में कुछ कार्रवाई करने के बाद यह सेवा बंद कर देता है या फिर हमें स्टॉपसेल्फ़ () का उपयोग करके मैन्युअल रूप से सेवा को रोकने की आवश्यकता होती है।

यह उदाहरण Android स्टॉप निर्दिष्ट IntentService के बारे में दर्शाता है।

चरण 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. support.v7.app.AppCompatActivity; android.view.View आयात करें; android.widget.TextView आयात करें; सार्वजनिक वर्ग MainActivity AppCompatActivity {TextView टेक्स्ट; BroadcastReceiver BroadcastReceiver =new BroadcastReceiver() {@Override public void onReceive(संदर्भ संदर्भ, आशय आशय) { String s1 =Intent.getStringExtra("DATAPASSED"); text.setText(s1); } }; @ ओवरराइड संरक्षित शून्य ऑनस्टार्ट () {super.onStart (); इंटेंटफिल्टर इंटेंटफिल्टर =नया इंटेंटफिल्टर (); IntentFilter.addAction ("com.example.andy.myapplication"); रजिस्टर रिसीवर (प्रसारण रिसीवर, इंटेंटफिल्टर); } @Override संरक्षित शून्य onCreate (बंडल सेव्ड इंस्टेंसस्टेट) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); टेक्स्ट =findViewById (R.id.text); टेक्स्ट.सेटऑनक्लिक लिस्टनर (नया व्यू। ऑनक्लिक लिस्टनर () {@ ओवरराइड पब्लिक वॉयड ऑनक्लिक (व्यू वी) {स्टार्ट सर्विस (नया इंटेंट (मेनएक्टिविटी। यह, सर्विस। क्लास));}}); } @Override संरक्षित शून्य onStop() {super.onStop(); अपंजीकृत रिसीवर (प्रसारण रिसीवर); }}

उपरोक्त कोड में, हमने एक सर्विस क्लास और डायनेमिक ब्रॉडकास्ट रिसीवर बनाया है जैसा कि नीचे दिखाया गया है -

@Overrideprotected void onStart() {super.onStart(); इंटेंटफिल्टर इंटेंटफिल्टर =नया इंटेंटफिल्टर (); IntentFilter.addAction ("com.example.andy.myapplication"); रजिस्टर रिसीवर (ब्रॉडकास्ट रिसीवर, इंटेंटफिल्टर);}…………………………………………..ब्रॉडकास्ट रिसीवर ब्रॉडकास्ट रिसीवर =नया ब्रॉडकास्ट रिसीवर () {@ओवरराइड पब्लिक वॉयड ऑन रिसीव (संदर्भ संदर्भ, इरादा इरादा) { स्ट्रिंग एस 1 =आशय। getStringExtra ("डेटापास किया गया"); text.setText(s1); }};…………………………………………………………………………..@ओवरराइडप्रोटेक्टेड शून्य ऑनस्टॉप () { सुपर.ऑनस्टॉप (); अपंजीकृत रिसीवर (प्रसारण रिसीवर);}

service.class फ़ाइल नामक एक क्लास बनाएं और निम्न कोड जोड़ें -

<पूर्व>पैकेज com.example.andy.myapplication;import android.app.IntentService;import android.content.Intent;import android.os.IBinder;सार्वजनिक श्रेणी की सेवा IntentService का विस्तार करती है {सार्वजनिक स्थिर अस्थिर बूलियन shouldStop =false; सार्वजनिक सेवा () { सुपर (service.class.getSimpleName ()); } @Override सार्वजनिक IBinder onBind(इरादा आशय) {वापसी शून्य; } @ ओवरराइड संरक्षित शून्य onHandleIntent (इरादा इरादा) {इरादा इरादा 1 =नया इरादा (); इंटेंट1.सेटएक्शन ("com.example.andy.myapplication"); Intent1.putExtra ("डेटापास किया गया", "ट्यूटोरियल पॉइंट कॉम"); भेजें प्रसारण (इरादा 1); अगर (चाहिए स्टॉप) {स्टॉपसेल्फ (); वापसी; } }}

सेवा को रोकने के लिए, सेवा वर्ग में निम्न कोड का उपयोग करें -

stopSelf();

चरण 4 - निम्नलिखित कोड को मेनिफेस्ट.एक्सएमएल में जोड़ें

 <उपयोग-अनुमति एंड्रॉइड:नाम ="android.permission.WAKE_LOCK"/> "एंड्रॉइड:राउंडआईकॉन =" @ मिपमैप / आईसी_लॉन्चर_राउंड "एंड्रॉइड:सपोर्ट आरटीएल ="ट्रू" एंड्रॉइड:थीम ="@ स्टाइल / ऐपथीम"> <गतिविधि एंड्रॉइड:नाम ="। मेनएक्टिविटी"> <इरादा-फिल्टर> <कार्रवाई एंड्रॉइड:नाम ="android.intent.action.MAIN" /> <श्रेणी android:name ="android.intent.category.LAUNCHER" />    

आइए अपना एप्लिकेशन चलाने का प्रयास करें। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक को खोलें और रन आइकन पर क्लिक करें टूलबार से एंड्रॉइड स्टॉप निर्दिष्ट इंटेंट सेवा? । एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा -

एंड्रॉइड स्टॉप निर्दिष्ट इंटेंट सेवा?

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

एंड्रॉइड स्टॉप निर्दिष्ट इंटेंट सेवा?

प्रसारण को mainactvity पर भेजने के बाद, यह आशय सेवा को रोक देगा।


  1. डेस्कटॉप और एंड्रॉइड पर क्रोम नोटिफिकेशन कैसे रोकें

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

  1. Android पर पॉप-अप विज्ञापन कैसे रोकें

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

  1. वाईफाई कैसे रोकें Android पर स्वचालित रूप से चालू करें

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