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

Android में निर्दिष्ट IntentService को कैसे रोकें?

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

निर्दिष्ट IntentService रोकने का उदाहरण

चरण 1 - नया प्रोजेक्ट बनाएं

Android Studio में एक नया प्रोजेक्ट बनाएं: File → New Project पर जाएं और आवश्यक विवरण भरें।

चरण 2 - लेआउट XML में कोड जोड़ें

res/layout/activity_main.xml में निम्नलिखित कोड जोड़ें:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Start Service"
        android:textSize="25sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

चरण 3 - MainActivity.java में कोड जोड़ें

src/MainActivity.java में निम्नलिखित कोड जोड़ें:

package 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.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private TextView text;
    private final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String s1 = intent.getStringExtra("DATAPASSED");
            text.setText(s1);
        }
    };

    @Override
    protected void onStart() {
        super.onStart();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("com.example.andy.myapplication");
        registerReceiver(broadcastReceiver, intentFilter);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        text = findViewById(R.id.text);
        text.setOnClickListener(v -> 
            startService(new Intent(MainActivity.this, MyService.class)));
    }

    @Override
    protected void onStop() {
        super.onStop();
        unregisterReceiver(broadcastReceiver);
    }
}

उपरोक्त कोड में, हमने सर्विस क्लास और डायनामिक ब्रॉडकास्ट रिसीवर बनाया है।

चरण 4 - Service क्लास बनाएं

MyService.java नामक क्लास फाइल बनाएं और निम्नलिखित कोड जोड़ें:

package com.example.andy.myapplication;

import android.app.IntentService;
import android.content.Intent;
import android.os.IBinder;

public class MyService extends IntentService {
    public static volatile boolean shouldStop = false;

    public MyService() {
        super(MyService.class.getSimpleName());
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        Intent intent1 = new Intent();
        intent1.setAction("com.example.andy.myapplication");
        intent1.putExtra("DATAPASSED", "Tutorialspoint.com");
        sendBroadcast(intent1);
        
        if (shouldStop) {
            stopSelf();
            return;
        }
    }
}

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

stopSelf();

चरण 5 - Manifest में कोड जोड़ें

AndroidManifest.xml में निम्नलिखित कोड जोड़ें:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.andy.myapplication">
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <application
        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">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service android:name=".MyService"/>
    </application>
</manifest>

ऐप चलाएं

अपने Android डिवाइस को कंप्यूटर से कनेक्ट करें और ऐप चलाएं। "Start Service" पर क्लिक करने पर सर्विस शुरू होगी, ब्रॉडकास्ट भेजेगी और फिर खुद को रोक देगी (stopSelf())।

  1. डेस्कटॉप और Android पर Chrome नोटिफिकेशन कैसे रोकें डेस्कटॉप और Android पर Chrome नोटिफिकेशन कैसे रोकें

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

  1. एंड्रॉइड पर पॉप-अप विज्ञापन बंद करें: आसान और विश्वसनीय तरीके एंड्रॉइड पर पॉप-अप विज्ञापन बंद करें: आसान और विश्वसनीय तरीके

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

  1. एंड्रॉइड पर ऑटो-वाईफाई बंद करें: फोन को अपने आप कनेक्ट होने से रोकें एंड्रॉइड पर ऑटो-वाईफाई बंद करें: फोन को अपने आप कनेक्ट होने से रोकें

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