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

एंड्रॉइड में AsyncTask थ्रेड को कैसे रोकें?


यह उदाहरण दर्शाता है कि मैं Android में AsyncTask थ्रेड को कैसे रोकूं।

चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
   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"
   tools:context=".MainActivity">
   <Button
      android:id="@+id/btnDo"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_above="@id/btnCancel"
      android:layout_centerInParent="true"
      android:layout_marginBottom="25sp"
      android:text="Do AsyncTask" />
   <Button
      android:id="@+id/btnCancel"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_above="@id/textView"
      android:layout_centerInParent="true"
      android:layout_marginBottom="20dp"
      android:text="Cancel" />
   <TextView
      android:id="@+id/textView"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_centerInParent="true"
      android:textSize="20sp"
      android:gravity="center_horizontal" />
</RelativeLayout>

चरण 3 - निम्न कोड को src/MainActivity.java

में जोड़ें
import android.graphics.Color;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
   private Button btnDo, btnCancel;
   private TextView textView;
   private AsyncTask myTask;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      btnDo = findViewById(R.id.btnDo);
      btnCancel = findViewById(R.id.btnCancel);
      textView = findViewById(R.id.textView);
      btnDo.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            textView.setText("");
            myTask = new DownloadTask().execute("Task1",
               "Task2", "Task3", "Task4", "Task5");
         }
      });
      btnCancel.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            myTask.cancel(true);
         }
      });
   }
   private class DownloadTask extends AsyncTask<String, Integer, List<String>> {
      @Override
      protected void onPreExecute() {
         super.onPreExecute();
         textView.setTextColor(Color.BLUE);
         textView.setText(textView.getText() + "\n Starting Task....");
      }
      @Override
      protected List<String> doInBackground(String... tasks) {
         int count = tasks.length;
         List<String> taskList= new ArrayList<>(count);
         for(int i =0;i<count;i++){
            String currentTask = tasks[i];
            taskList.add(currentTask);
            try {
               Thread.sleep(1000);
            } catch (InterruptedException e) {
               e.printStackTrace();
            }
            publishProgress((int) (((i+1) / (float) count) * 100));
            if(isCancelled()){
               break;
            }
         }
         return taskList;
      }
      @Override
      protected void onCancelled() {
         super.onCancelled();
         textView.setTextColor(Color.RED);
         textView.setText(textView.getText() + "\n Operation is cancelled..");
      }
      @Override
      protected void onProgressUpdate(Integer... progress) {
         super.onProgressUpdate(progress);
         textView.setText(textView.getText()+ "\n Completed:)" + progress[0] + "%");
      }
      @Override
      protected void onPostExecute(List<String> result) {
         super.onPostExecute(result);
         textView.setText(textView.getText() + "\n\n Done....");
         for (int i=0;i<result.size();i++){
            textView.setText(textView.getText() + "\n" +
            result.get(i));
         }
      }
   }
}

चरण 4 - निम्न कोड को androidManifest.xml में जोड़ें

<?xml version="1.0" encoding="utf-8"?>
<manifest
   xmlns:android="https://schemas.android.com/apk/res/android"
   package="app.com.sample">
   <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>
   </application>
</manifest>

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

एंड्रॉइड में AsyncTask थ्रेड को कैसे रोकें?

एंड्रॉइड में AsyncTask थ्रेड को कैसे रोकें?


  1. एंड्रॉइड में बटरनाइफ का उपयोग कैसे करें?

    यह उदाहरण दर्शाता है कि मैं android में ButterKnife कैसे करूँ। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें। चरण 3 - बिल्ड.ग्रेडल (मॉड्य

  1. एंड्रॉइड पर JSON का विश्लेषण कैसे करें?

    यह उदाहरण दर्शाता है कि Android में JSON को कैसे पार्स किया जाए। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें। <?xml version="1.0"

  1. एंड्रॉइड पर टेक्स्ट व्यू में टेक्स्ट को कैसे जस्टिफाई करें?

    यह उदाहरण दर्शाता है कि Android पर TextView में टेक्स्ट को कैसे सही ठहराया जाए। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें। चरण 3 - न