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

Android में एक्टिविटी शुरू करने से पहले प्रोग्रेस डायलॉग कैसे दिखाएं?

Android में एक्टिविटी लॉन्च से पहले प्रोग्रेस डायलॉग दिखाना

यह ट्यूटोरियल दिखाता है कि कैसे AsyncTask के साथ ProgressDialog का उपयोग करके बैकग्राउंड वर्क के दौरान लोडिंग इंडिकेटर दिखाया जाता है। नोट: ProgressDialog डिप्रिकेटेड है; आधुनिक ऐप्स में ProgressBar या Jetpack Compose का उपयोग करें।

चरण 1: प्रोजेक्ट सेटअप

Android Studio में नया प्रोजेक्ट बनाएं।

चरण 2: लेआउट फाइल

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:padding="4dp"
    tools:context=".MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:text="एक्टिविटी शुरू होने से पहले प्रोग्रेस डायलॉग दिखा रहे हैं..."
        android:textSize="24sp"
        android:textStyle="bold" />
</LinearLayout>

चरण 3: AsyncTask के साथ प्रोग्रेस डायलॉग

src/MainActivity.java:

import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    ProgressDialog progressDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        progressDialog = new ProgressDialog(this);
        progressDialog.setTitle("कंटेंट लोडर");
        progressDialog.setMessage("लोड हो रहा है...");
        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        progressDialog.setMax(100);
        progressDialog.setProgress(0);
        progressDialog.setCancelable(false);
        
        new MyTask().execute();
    }

    private class MyTask extends AsyncTask<Void, Integer, Void> {
        @Override
        protected void onPreExecute() {
            progressDialog.show();
        }

        @Override
        protected Void doInBackground(Void... voids) {
            // सिमुलेटेड बैकग्राउंड वर्क
            for (int i = 0; i <= 100; i += 10) {
                try {
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                publishProgress(i);
            }
            return null;
        }

        @Override
        protected void onProgressUpdate(Integer... values) {
            progressDialog.setProgress(values[0]);
        }

        @Override
        protected void onPostExecute(Void result) {
            progressDialog.dismiss();
            // यहां अगली एक्टिविटी शुरू करें
            // startActivity(new Intent(MainActivity.this, NextActivity.class));
        }
    }
}

आधुनिक विकल्प (अनुशंसित)

1. ProgressBar के साथ लेआउट में

<ProgressBar
    android:id="@+id/progressBar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:visibility="gone" />

2. Coroutines के साथ (Kotlin)

lifecycleScope.launch {
    progressBar.visibility = View.VISIBLE
    val result = withContext(Dispatchers.IO) { doBackgroundWork() }
    progressBar.visibility = View.GONE
    // UI अपडेट करें
}

3. Jetpack Compose में

var showProgress by remember { mutableStateOf(false) }
if (showProgress) {
    CircularProgressIndicator()
}

चरण 4: मैनिफेस्ट

स्टैंडर्ड कॉन्फ़िगरेशन।

महत्वपूर्ण चेतावनियां

  • ProgressDialog API 26 में डिप्रिकेटेड - नए प्रोजेक्ट्स में उपयोग न करें
  • AsyncTask भी डिप्रिकेटेड है - Coroutines, RxJava, या Executors उपयोग करें
  • कॉन्फिगरेशन चेंज (रोटेशन) को हैंडल करने के लिए ViewModel उपयोग करें
  • लंबे ऑपरेशंस के लिए WorkManager पर विचार करें
  1. एंड्रॉइड में ProgressDialog कैसे दिखाएं? (और आधुनिक विकल्प) एंड्रॉइड में ProgressDialog कैसे दिखाएं? (और आधुनिक विकल्प)

    एंड्रॉइड में ProgressDialog — बेसिक उपयोग और आधुनिक विकल्प ProgressDialog एक मॉडल डायलॉग है जो लोडिंग इंडिकेटर दिखाता है। **ध्यान दें:** यह क्लास **API लेवल 26 (Android 8.0) में डिप्रिकेटेड** हो गई है। Google अब ProgressBar (लेआउट में) या MaterialProgressIndicator (Material Components) उपयोग करने की

  1. Android में WebView में URL लोड करते समय प्रोग्रेस बार कैसे दिखाएं? Android में WebView में URL लोड करते समय प्रोग्रेस बार कैसे दिखाएं?

    Android WebView में प्रोग्रेस बार दिखाने का गाइड यह ट्यूटोरियल दिखाता है कि जब WebView में कोई URL लोड हो रहा हो, तो प्रोग्रेस बार कैसे दिखाया जाए और लोडिंग पूरी होने पर उसे कैसे छुपाया जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं। चरण 2: लेआउट फ़

  1. एंड्रॉइड में टोस्ट कैसे प्रदर्शित करें? एंड्रॉइड में टोस्ट कैसे प्रदर्शित करें?

    एंड्रॉइड में Toast संदेश दिखाने का बुनियादी उदाहरण यह उदाहरण दर्शाता है कि Toast.makeText() का उपयोग करके सरल टोस्ट संदेश कैसे प्रदर्शित करें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट (ConstraintLayout) res/layout/activity_main.xml: <?xml version=1.0