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

অ্যান্ড্রয়েডে সিঙ্ক্রোনাইজড সিঙ্গলটন ডায়ালগ কীভাবে ব্যবহার করবেন?

সিঙ্গলটন ডিজাইন প্যাটার্ন এবং সিঙ্ক্রোনাইজেশন

সিঙ্গলটন একটি ডিজাইন প্যাটার্ন যা একটি ক্লাসের ইনস্ট্যান্সিয়েশনকে শুধুমাত্র একটি ইনস্ট্যান্সে সীমাবদ্ধ করে। সিঙ্ক্রোনাইজড মানে একবারে শুধুমাত্র একটি থ্রেড অ্যাক্সেস করতে পারে। এটি মাল্টি-থ্রেডেড পরিবেশে থ্রেড সেফটি নিশ্চিত করে।

উদাহরণ: সিঙ্ক্রোনাইজড সিঙ্গলটন ডায়ালগ

এই উদাহরণটি প্রদর্শন করে কীভাবে অ্যান্ড্রয়েডে সিঙ্ক্রোনাইজড সিঙ্গলটন ডায়ালগ ব্যবহার করতে হয়।

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

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

ধাপ ২: লেআউট ফাইল (res/layout/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"
    tools:context=".MainActivity"
    android:orientation="vertical">
    <Button
        android:id="@+id/start"
        android:text="সিঙ্গলটন ডায়ালগ শুরু করুন"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/end"
        android:text="সিঙ্গলটন ডায়ালগ বন্ধ করুন"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

দুটি বাটন আছে: স্টার্ট বাটনে ক্লিক করলে প্রগ্রেস ডায়ালগ দেখাবে, এন্ড বাটনে ক্লিক করলে ডায়ালগ বন্ধ করবে।

ধাপ ৩: MainActivity.java

package com.example.singletondialog;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    Button start;
    SingleTonExample singletonExample;

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

        start = findViewById(R.id.start);
        singletonExample = SingleTonExample.getInstance();

        findViewById(R.id.end).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                singletonExample.dismiss();
            }
        });

        start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                singletonExample.show(MainActivity.this);
            }
        });
    }
}

ধাপ ৪: সিঙ্গলটন ক্লাস (SingleTonExample.java)

package com.example.singletondialog;

import android.app.Dialog;
import android.content.Context;
import android.view.Window;

public class SingleTonExample {
    private Dialog dialog;
    private static final SingleTonExample ourInstance = new SingleTonExample();

    public static synchronized SingleTonExample getInstance() {
        return ourInstance;
    }

    private SingleTonExample() { }

    public void show(Context context) {
        if (dialog != null && dialog.isShowing()) {
            return;
        }
        dialog = new Dialog(context);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setContentView(R.layout.layout_progress_dialog);
        dialog.setCancelable(true);
        dialog.show();
    }

    public void dismiss() {
        if (dialog != null && dialog.isShowing()) {
            dialog.dismiss();
        }
    }
}

ধাপ ৫: ডায়ালগ লেআউট (res/layout/layout_progress_dialog.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">
    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/progress" />
</LinearLayout>

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

অ্যান্ড্রয়েড ডিভাইস সংযুক্ত করে Run করুন। "সিঙ্গলটন ডায়ালগ শুরু করুন" বাটনে ক্লিক করলে সিঙ্গলটন ক্লাস থেকে ডায়ালগ দেখাবে।

  1. অ্যান্ড্রয়েডে runOnUiThread কীভাবে ব্যবহার করবেন?

  2. অ্যান্ড্রয়েড লোডার (Loader) ব্যবহারের পদ্ধতি

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

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