কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েডে AsyncTask বারবার চালানো (নির্দিষ্ট সময়ंतरালে)

Handler এবং AsyncTask ব্যবহার করে পর্যায়ক্রমে টাস্ক চালানো

এই উদাহরণে দেখানো হয়েছে কিভাবে একটি AsyncTask-কে নির্দিষ্ট সময়ंतरালে (৫ সেকেন্ড পরপর) বারবার চালানো যায়। Handler.postDelayed() ব্যবহার করে রিকারসিভ কল করা হয়েছে।

ধাপ ১: প্রজেক্ট তৈরি করুন

Android Studio-তে নতুন প্রজেক্ট শুরু করুন।

ধাপ ২: লেআউট (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">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="AsyncTask Demo"
        android:textSize="24sp"
        android:textStyle="bold" />

</RelativeLayout>

ধাপ ৩: MainActivity.java

import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        runRepeatingTask();
    }

    private void runRepeatingTask() {
        new RepeatingTask().execute();
    }

    private class RepeatingTask extends AsyncTask {
        private final Handler handler = new Handler();

        @Override
        protected Void doInBackground(Void... voids) {
            // ব্যাকগ্রাউন্ড কাজ এখানে করুন (নেটওয়ার্ক, ডিবি ইত্যাদি)
            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            // UI আপডেট বা টোস্ট দেখান
            Toast.makeText(MainActivity.this, "AsyncTask চালু হলো (৫ সেকেন্ড পরপর)", Toast.LENGTH_SHORT).show();

            // ৫ সেকেন্ড পর আবার কল করুন
            handler.postDelayed(() -> new RepeatingTask().execute(), 5000);
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // মেমরি লিক রোধে handler ক্যাঞ্সেল করুন যদি প্রয়োজন
    }
}

গভীর ব্যাখ্যা

  • AsyncTask: ব্যাকগ্রাউন্ড থ্রেডে কাজ করে, UI থ্রেডে ফলাফল দেয়।
  • Handler.postDelayed(): নির্দিষ্ট সময় পর Runnable এক্সিকিউট করে।
  • রিকারসিভ কল: onPostExecute-এ নতুন AsyncTask তৈরি করে আবার execute() কল করা হয়েছে।

⚠️ সতর্কতা

AsyncTask Android 11 (API 30) থেকে deprecated। আধুনিক অ্যাপে Kotlin Coroutines, RxJava, বা WorkManager ব্যবহার করা উচিত। এই উদাহরণ শুধু লিগ্যাসি বোঝার জন্য।

ফলাফল

অ্যাপ চালু হওয়ার সাথে সাথে প্রতি ৫ সেকেন্ড পরপর একটি টোস্ট বার্তা দেখাবে "AsyncTask runs every 5 seconds"।

অ্যান্ড্রয়েডে AsyncTask বারবার চালানো (নির্দিষ্ট সময়ंतरালে)
পেরিয়ডিক AsyncTask এক্সিকিউশন
  1. Android-এ বুট টাইমে অ্যাপ্লিকেশন শুরু করার পদ্ধতি

  2. Android-এ নির্দিষ্ট সময় পর মেথড কল করার পদ্ধতি

  3. অ্যান্ড্রয়েডে স্ক্রিন টাইম চেক করার পদ্ধতি

  4. অ্যান্ড্রয়েড টিভিতে পপকর্ন টাইম ইনস্টল করার পদ্ধতি