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

Android-এ Handler কী এবং এর ব্যবহার


আমরা ব্যাকগ্রাউন্ড থ্রেড থেকে মেইন থ্রেডকে সরাসরি স্পর্শ করতে পারি না, তাই Handler মেইন থ্রেডে উপলব্ধ সব ইভেন্টকে একটি কিউতে সংগ্রহ করে এবং এই কিউটিকে Looper ক্লাসে পাস করে।

Android-এ Handler মূলত ব্যাকগ্রাউন্ড থ্রেড বা মেইন থ্রেড ছাড়া অন্য থ্রেড থেকে মেইন থ্রেড আপডেট করতে ব্যবহৃত হয়। Handler-এ দুটি প্রধান মেথড রয়েছে:

  • post() − ব্যাকগ্রাউন্ড থ্রেড থেকে মেইন থ্রেডে Looper ব্যবহার করে মেসেজ পোস্ট করে

  • sendMessage() − আপনি যা UI-তে পাঠিয়েছেন (ব্যাকগ্রাউন্ড থ্রেড থেকে মেসেজ) বা UI ফাংশনগুলো органাইজ করতে চাইলে sendMessage() ব্যবহার করুন

এই উদাহরণটি Progress Dialog-এ Handler ব্যবহার দেখায়।

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

Android Studio-তে File → New Project-এ যান এবং প্রয়োজনীয় বিবরণ পূরণ করে একটি নতুন প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট ফাইল (res/layout/activity_main.xml)

<?xml version = "1.0" encoding = "utf-8"?> 
<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:android = "https://schemas.android.com/apk/res/android" 
    xmlns:app = "https://schemas.android.com/apk/res-auto" 
    xmlns:tools = "https://schemas.android.com/tools" 
    android:layout_width = "match_parent" 
    android:layout_height = "match_parent" 
    tools:context = ".MainActivity"> 
    <Button 
        android:id = "@+id/button" 
        android:layout_width = "wrap_content" 
        android:layout_height = "wrap_content" 
        android:text = "Click" 
        app:layout_constraintBottom_toBottomOf = "parent" 
        app:layout_constraintLeft_toLeftOf = "parent" 
        app:layout_constraintRight_toRightOf = "parent" 
        app:layout_constraintTop_toTopOf = "parent" /> 
</androidx.constraintlayout.widget.ConstraintLayout>

ধাপ ৩: MainActivity.java ফাইল

import android.app.ProgressDialog;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    Handler mHandler;
    ProgressDialog mProgressBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button button = findViewById(R.id.button);
        button.setOnClickListener(this);
    }

    @RequiresApi(api = Build.VERSION_CODES.O)
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button:
                notificationDialog();
                break;
        }
    }

    @RequiresApi(api = Build.VERSION_CODES.O)
    private void notificationDialog() {
        mHandler = new Handler();
        mProgressBar = new ProgressDialog(MainActivity.this);
        mProgressBar.setMax(100);
        mProgressBar.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        mProgressBar.show();
        
        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i <= 100; i++) {
                    final int currentProgressCount = i;
                    try {
                        Thread.sleep(50);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    
                    // ব্যাকগ্রাউন্ড থ্রেড থেকে UI থ্রেডে ভ্যালু আপডেট
                    mHandler.post(new Runnable() {
                        @Override
                        public void run() {
                            mProgressBar.setProgress(currentProgressCount);
                        }
                    });
                }
            }
        }).start();
    }
}

অ্যাপ্লিকেশন চালান

আপনার Android ডিভাইস কম্পিউটারের সাথে সংযুক্ত আছে অনুমান করে। Android Studio-তে প্রজেক্টের যেকোনো Activity ফাইল খুলে টুলবার থেকে Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করুন এবং ডিফল্ট স্ক্রিন দেখুন।

Android-এ Handler কী এবং এর ব্যবহার

যখন ব্যবহারকারী উপরের বাটনে ক্লিক করবে, এটি প্রগ্রেস ডায়ালগ দেখাবে:

Android-এ Handler কী এবং এর ব্যবহার


Android-এ Handler কী এবং এর ব্যবহার

  1. অ্যান্ড্রয়েডে Handler ব্যবহারের পদ্ধতি

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

  3. ব্লूस্ট্যাকস: কি এটি নিরাপদ?

  4. পিসি জন্য টপ ১২ অ্যান্ড্রয়েড অপারেটিং সিস্টেম: পারফরম্যান্স ও অ্যাপ অ্যাক্সেস বাড়ান