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

Android में थ्रेड को दो बार शुरू होने से कैसे रोकें?

Android में थ्रेड को दो बार शुरू होने से रोकना

उदाहरण में जाने से पहले, हमें पता होना चाहिए कि थ्रेड क्या है। एक थ्रेड एक हल्का सब-प्रोसेस है, यह UI को बाधित किए बिना बैकग्राउंड ऑपरेशन करने जा रहा है। यह उदाहरण दर्शाता है कि Android में थ्रेड को दो बार शुरू होने से कैसे रोकें।

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

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

चरण 2: लेआउट XML जोड़ें (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    android:layout_marginTop="100dp"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/edit_query"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter string" />

    <Button
        android:id="@+id/click"
        android:layout_marginTop="50dp"
        style="@style/Base.TextAppearance.AppCompat.Widget.Button.Borderless.Colored"
        android:layout_width="wrap_content"
        android:background="#c1c1c1"
        android:textColor="#FFF"
        android:layout_height="wrap_content"
        android:text="Button" />

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

उपरोक्त कोड में, हमने EditText और TextView लिया है। जब उपयोगकर्ता EditText में कुछ टेक्स्ट दर्ज करता है, तो यह 5000ms तक इंतजार करेगा और TextView को अपडेट करेगा।

चरण 3: MainActivity.java कोड जोड़ें (src/MainActivity.java)

package com.example.myapplication;

import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    EditText edit_query;
    TextView textView;
    boolean twice = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edit_query = findViewById(R.id.edit_query);
        textView = findViewById(R.id.text);
        findViewById(R.id.click).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                runthread();
            }
        });
    }

    private void runthread() {
        twice = true;
        if (twice) {
            final String s1 = edit_query.getText().toString();
            Handler handler = new Handler();
            handler.post(new Runnable() {
                @Override
                public void run() {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            textView.setText(s1);
                            try {
                                Thread.sleep(5000);
                                twice = false;
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }
                    });
                }
            });
        }
    }
}

एप्लिकेशन चलाएं

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

Android में थ्रेड को दो बार शुरू होने से कैसे रोकें?

उपरोक्त परिणाम में, EditText में कुछ टेक्स्ट दर्ज करें और बटन को दो या तीन बार क्लिक करें। यह थ्रेड शुरू नहीं करेगा, 5000ms के बाद यह TextView को अपडेट करेगा और थ्रेड काउंट को 0 पर रीसेट करेगा।

  1. Android में थ्रेड से टोस्ट संदेश कैसे दिखाएं? Android में थ्रेड से टोस्ट संदेश कैसे दिखाएं?

    बैकग्राउंड थ्रेड से Android में Toast संदेश प्रदर्शित करना यह उदाहरण दर्शाता है कि Android ऐप में बैकग्राउंड थ्रेड से UI थ्रेड पर Toast संदेश कैसे दिखाया जाता है। चूंकि Toast केवल मुख्य थ्रेड पर दिखाया जा सकता है, इसलिए हमें runOnUiThread() या Handler का उपयोग करना पड़ता है। चरण 1: नया प्रोजेक्ट बन

  1. एंड्रॉइड में AsyncTask थ्रेड कैसे रोकें? (और आधुनिक विकल्प) एंड्रॉइड में AsyncTask थ्रेड कैसे रोकें? (और आधुनिक विकल्प)

    एंड्रॉइड में AsyncTask कैंसिल करना — सही तरीका और आधुनिक विकल्प AsyncTask एंड्रॉइड का पुराना बैकग्राउंड टास्क API है जो **API 30 (Android 11) में डिप्रिकेटेड** हो चुका है। फिर भी, लिगेसी कोडबेस में इसे कैंसिल करना आना ज़रूरी है। सही तरीका: cancel(true) कॉल करें और doInBackground में isCancelled() चे

  1. Android ऐप को बूट पर ऑटो-स्टार्ट कैसे करें? Android ऐप को बूट पर ऑटो-स्टार्ट कैसे करें?

    बूट पर ऐप लॉन्च करना यह उदाहरण दर्शाता है कि डिवाइस बूट होने पर मुख्य एक्टिविटी को स्वचालित रूप से कैसे लॉन्च किया जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project से प्रोजेक्ट बनाएं। चरण 2: लेआउट (activity_main.xml) <?xml version=1.0 encoding=utf-8?> <RelativeLayout