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

Android में runOnUiThread का उपयोग कैसे करें?


runOnUiThread() क्या है?

कभी-कभी मेन थ्रेड भारी ऑपरेशन्स करता है। यदि यूजर UI पर कुछ अतिरिक्त ऑपरेशन्स जोड़ना चाहता है, तो यह लोड हो जाता है और ANR (Application Not Responding) देता है। runOnUiThread का उपयोग करके बैकग्राउंड ऑपरेशन्स वर्कर थ्रेड पर करके रिजल्ट को मेन थ्रेड पर अपडेट किया जा सकता है।

उद्देश्य

यह उदाहरण दर्शाता है कि Android में runOnUiThread का उपयोग कैसे करें।

चरण 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"
    android:id="@+id/parent"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:gravity="center"
    android:orientation="vertical">
    <Button
        android:id="@+id/runOn"
        android:text="Run"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/text"
        android:textSize="20sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

ऊपर के कोड में, हमने एक बटन और टेक्स्ट व्यू लिया है। जब आप बटन पर क्लिक करते हैं, तो यह टेक्स्ट व्यू को अपडेट करेगा।

चरण 3: MainActivity जावा कोड जोड़ें

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

package com.example.andy.myapplication;

import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    int i = 0;

    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final TextView textView = findViewById(R.id.text);
        final Button runOn = findViewById(R.id.runOn);

        runOn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread() {
                    public void run() {
                        while (i++ < 1000) {
                            try {
                                runOnUiThread(new Runnable() {
                                    @Override
                                    public void run() {
                                        textView.setText("#" + i);
                                    }
                                });
                                Thread.sleep(300);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }.start();
            }
        });
    }
}

runOnUiThread कोड समझाया गया

new Thread() {
    public void run() {
        while (i++ < 1000) {
            try {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        textView.setText("#" + i);
                    }
                });
                Thread.sleep(300);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}.start();

ऊपर के कोड में, जब यूजर बटन पर क्लिक करता है, तो यह runOnUiThread() का उपयोग करके टेक्स्ट व्यू को अपडेट करता है।

ऐप चलाएं

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

Android में runOnUiThread का उपयोग कैसे करें?

ऊपर के परिणाम में प्रारंभिक स्क्रीन दिखाई गई है। जब यूजर Run बटन पर क्लिक करता है, तो यह टेक्स्ट व्यू को अपडेट करता है:

Android में runOnUiThread का उपयोग कैसे करें?

महत्वपूर्ण नोट्स

  • runOnUiThread() केवल Activity में उपलब्ध है (View में post() उपयोग करें)।
  • यह Runnable को मेन थ्रेड की मैसेज क्यू में पोस्ट करता है।
  • भारी ऑपरेशन्स के लिए AsyncTask (डिप्रिकेटेड), ExecutorService, या Coroutines (Kotlin) बेहतर हैं।
  • UI अपडेट हमेशा मेन थ्रेड पर ही करना चाहिए।
  1. एंड्रॉइड में ViewFlipper का उपयोग कैसे करें? एंड्रॉइड में ViewFlipper का उपयोग कैसे करें?

    एंड्रॉइड में ViewFlipper के साथ व्यू फ्लिपिंग एनिमेशन यह ट्यूटोरियल ViewFlipper का उपयोग करके व्यूज़ के बीच एनिमेटेड ट्रांजिशन बनाने का तरीका दिखाता है, जिसमें ऑटो-फ्लिपिंग और मैनुअल नेविगेशन शामिल है। लेआउट (activity_main.xml) <RelativeLayout xmlns:android=https://schemas.android.com/apk/res/an

  1. Android में Snackbar का उपयोग कैसे करें? Android में Snackbar का उपयोग कैसे करें?

    परिचय Snackbar Material Design का एक घटक है जो स्क्रीन के निचले भाग में एक संक्षिप्त संदेश दिखाता है। यह उदाहरण Snackbar के बुनियादी उपयोग और अनुकूलन को दर्शाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट XML res/layout/activity_main.xml: <?xml version=1.

  1. Android में NavigationView (नेविगेशन ड्रॉअर) कैसे उपयोग करें? Android में NavigationView (नेविगेशन ड्रॉअर) कैसे उपयोग करें?

    परिचय NavigationView मटेरियल डिज़ाइन का साइड नेविगेशन ड्रॉअर (हैमबर्गर मेनू) है। यह DrawerLayout के अंदर होता है और मेनू आइटम्स, हेडर, और नेविगेशन हैंडलिंग प्रदान करता है। यह ट्यूटोरियल Navigation Components के साथ आधुनिक सेटअप दिखाता है। आवश्यक चरण चरण 1: नया प्रोजेक्ट बनाएं Android Studio में Fi