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

অ্যান্ড্রয়েডে প্রতি ১০ সেকেন্ড পরপর একটি মেথড চালানো

পিরিয়ডিক টাস্ক রান করা: Handler এবং Runnable ব্যবহার

এই টিউটোরিয়ালটি দেখাবে কীভাবে Handler এবং Runnable ব্যবহার করে একটি মেথড নির্দিষ্ট সময় অন্তরালে (এখানে ১০ সেকেন্ড) বারবার চালানো যায়।

পদক্ষেপ ১: প্রজেক্ট তৈরি করুন

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

পদক্ষেপ ২: লেআউট XML (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:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />

</LinearLayout>

পদক্ষেপ ৩: MainActivity.java-তে Handler লজিক

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

public class MainActivity extends AppCompatActivity {
    private Handler handler = new Handler();
    private Runnable runnable;
    private final int delay = 10000; // 10 seconds in milliseconds

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

    @Override
    protected void onResume() {
        super.onResume();
        startPeriodicTask();
    }

    @Override
    protected void onPause() {
        super.onPause();
        stopPeriodicTask();
    }

    private void startPeriodicTask() {
        runnable = new Runnable() {
            @Override
            public void run() {
                // এখানে আপনার পিরিয়ডিক কাজ করুন
                Toast.makeText(MainActivity.this, "This method runs every 10 seconds", Toast.LENGTH_SHORT).show();
                
                // পরবর্তী রান শিডিউল করুন
                handler.postDelayed(this, delay);
            }
        };
        
        // প্রথমবার চালান
        handler.postDelayed(runnable, delay);
    }

    private void stopPeriodicTask() {
        if (runnable != null) {
            handler.removeCallbacks(runnable);
        }
    }
}

সেরা অনুশীলন ও বিকল্প পদ্ধতি

১. Kotlin Coroutines (আধুনিক পদ্ধতি)

lifecycleScope.launch {
    while (isActive) {
        delay(10000)
        // আপনার কাজ এখানে
    }
}

২. WorkManager (ব্যাকগ্রাউন্ড ও পারসিস্টেন্ট কাজের জন্য)

PeriodicWorkRequest workRequest = new PeriodicWorkRequest.Builder(MyWorker.class, 10, TimeUnit.SECONDS).build();
WorkManager.getInstance(context).enqueue(workRequest);

৩. Timer এবং TimerTask (পুরানো পদ্ধতি)

Handler পছন্দযোগ্য কারণ এটি মেইন থ্রেডে রান হয় এবং লাইফসাইকেল-সচেতন।

মেমরি লিক প্রতিরোধ

  • onPause()-তে অবশ্যই removeCallbacks() কল করুন
  • Static Handler এড়িয়ে চলুন
  • ল্যাম্বডা এক্সপ্রেশন ব্যবহার করলে রেফারেন্স রাখা সহজ
  1. ম্যাকে অ্যান্ড্রয়েড অ্যাপ চালানোর পদ্ধতি

  2. অ্যান্ড্রয়েড ডিভাইসে আইওএস অ্যাপ চালানোর উপায়

  3. Phoenix OS দিয়ে PC-তে অ্যান্ড্রয়েড চালানোর পদ্ধতি

  4. উইন্ডোজ ১১-এ অ্যান্ড্রয়েড অ্যাপ চালান: ধাপে ধাপে গাইড