उदाहरण में आने से पहले, हमें पता होना चाहिए कि android में service क्या है। सेवा यूआई के साथ बातचीत किए बिना बैक ग्राउंड ऑपरेशन करने जा रही है और यह गतिविधि नष्ट होने के बाद भी काम करती है।
यह उदाहरण दिखाता है कि कैसे जांचें कि कोई सेवा Android पर चल रही है या नहीं।
चरण 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.app.ActivityManager;import android.content.Context;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle आयात android.util.Log; आयात android.view.View; आयात android.widget.TextView; सार्वजनिक वर्ग MainActivity AppCompatActivity को बढ़ाता है {@Override संरक्षित शून्य onCreate (बंडल सेव्ड इंस्टेंसस्टेट) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); अंतिम टेक्स्ट व्यू टेक्स्ट =findViewById (R.id.text); text.setOnClickListener (नया दृश्य। OnClickListener () {@ ओवरराइड सार्वजनिक शून्य पर क्लिक करें (देखें v) {अगर (isMyServiceRunning (service.class)) {text.setText ("रोक दिया गया"); स्टॉप सर्विस (नया इरादा (मेनएक्टिविटी। यह, सेवा) .class)); } और {text.setText("Started"); startService(new Intent(MainActivity.this, service.class)); }}}); } निजी बूलियन isMyServiceRunning(Class> serviceClass) { activityManager Manager =(ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.RunningServiceInfo service:manager.getRunningServices(Integer.MAX_VALUE)) {if (serviceClass.getName().equals(service.service.getClassName())) { return true; } } विवरण झूठा है; }}पूर्व>उपरोक्त कोड में सेवा शुरू करने और रोकने के लिए। हमने आशय और पारित संदर्भ और सेवा वर्ग का उपयोग किया है। अब पैकेज फोल्डर में service.class के रूप में एक सर्विस क्लास बनाएं और निम्न कोड जोड़ें -
पैकेज com.example.andy.myapplication;import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.widget.Toast;पब्लिक क्लास सर्विस सर्विस का विस्तार करती है { @Override public IBinder ऑनबाइंड (इरादा इरादा) {वापसी शून्य; } @ ओवरराइड पब्लिक इंट ऑनस्टार्ट कमांड (इरादा इरादा, इंट फ्लैग, इंट स्टार्ट आईडी) { Toast.makeText (यह, "उपयोगकर्ता द्वारा शुरू की गई सेवा।", टोस्ट। LENGTH_LONG)। शो (); वापसी START_STICKY; } @ ओवरराइड सार्वजनिक शून्य onDestroy() {super.onDestroy(); Toast.makeText (यह, "उपयोगकर्ता द्वारा नष्ट की गई सेवा।", Toast.LENGTH_LONG)। शो (); }}पूर्व>यह पहचानने के लिए कि सेवा काम कर रही है या नहीं, निम्नलिखित कोड का उपयोग करें-
ActivityManager Manager =(ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.RunningServiceInfo service:manager.getRunningServices(Integer.MAX_VALUE)) {if (serviceClass.getName().equals(service.service.getClassName()) )) {वापसी सच; }}झूठी वापसी;उपरोक्त विधि को कॉल करने के लिए, निम्न कोड का उपयोग करें-
isMyServiceRunning(service.class)चरण 4 - निम्नलिखित कोड को मेनिफेस्ट.एक्सएमएल में जोड़ें
<एप्लिकेशन android:allowBackup ="true" android:icon ="@mipmap/ic_launcher" android:label ="@string/app_name" android:roundIcon ="@mipmap/ic_launcher_round" android:supportsRtl ="true" " android:theme ="@style/AppTheme"> <गतिविधि android:name =".MainActivity"> <श्रेणी android:name ="android.intent.category.LAUNCHER" /> आइए अपना एप्लिकेशन चलाने का प्रयास करें। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक खोलें और टूलबार से रन आइकन पर क्लिक करें। एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा -
उपरोक्त परिणाम में एक प्रारंभिक स्क्रीन है, टेक्स्ट व्यू पर क्लिक करें, यह नीचे दिखाए गए अनुसार सेवा शुरू कर देगा -
उपरोक्त परिणाम में, सेवा शुरू हो गई है अब टेक्स्ट व्यू पर क्लिक करें, यह नीचे दिखाए गए अनुसार सेवा बंद कर देगा -