এই উদাহরণটি দেখায় যে আমি কীভাবে Android এ AsynchTask থ্রেড বন্ধ করব।
ধাপ 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>
আসুন আপনার অ্যাপ্লিকেশন চালানোর চেষ্টা করি৷ আমি ধরে নিচ্ছি আপনি আপনার কম্পিউটারের সাথে আপনার আসল অ্যান্ড্রয়েড মোবাইল ডিভাইসটি সংযুক্ত করেছেন৷ অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি চালাতে, আপনার প্রোজেক্টের অ্যাক্টিভিটি ফাইলগুলির একটি খুলুন এবং টুলবার থেকে রুনিকনে ক্লিক করুন। একটি বিকল্প হিসাবে আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং তারপরে আপনার মোবাইল ডিভাইসটি পরীক্ষা করুন যা আপনার ডিফল্ট স্ক্রীন প্রদর্শন করবে -