यह उदाहरण दर्शाता है कि मैं Android में AsyncTask थ्रेड को कैसे रोकूं।
चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।
चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://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="http://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 मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक को खोलें और टूलबार से रनिकॉन पर क्लिक करें। एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा -

