উদাহরণের আগে জানা দরকার সিঙ্গলটন ডিজাইন প্যাটার্ন কী। সিঙ্গলটন হলো একটি ডিজাইন প্যাটার্ন যা একটি ক্লাসের ইনস্ট্যানশনকে শুধু একটি ইন্সট্যান্সে সীমাবদ্ধ করে। উল্লেখযোগ্য ব্যবহারগুলোর মধ্যে রয়েছে কনকারেন্সি নিয়ন্ত্রণ এবং অ্যাপ্লিকেশনের ডেটা স্টোর অ্যাক্সেস করার জন্য একটি কেন্দ্রীয় পয়েন্ট তৈরি করা।
এই উদাহরণটি দেখায় কীভাবে অ্যান্ড্রয়েডে সিঙ্গলটন ইনস্ট্যান্স ক্লিয়ার করা যায়।
প্রয়োজনীয় ধাপসমূহ
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project এ যান এবং প্রজেক্ট তৈরি করার জন্য প্রয়োজনীয় তথ্য পূরণ করুন।
ধাপ ২: লেআউট ফাইলে Button যোগ করুন (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/show"
android:text="Clear Instance in Singleton"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
ধাপ ৩: MainActivity.java-এ লজিক বাস্তবায়ন করুন
package com.example.andy.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
Button show;
JSONObject jsonObject;
SingleTonExample singletonExample;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
show = findViewById(R.id.show);
singletonExample = SingleTonExample.getInstance();
singletonExample.init(getApplicationContext());
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
singletonExample.clearInstance();
Toast.makeText(MainActivity.this, "Removed Singleton Instance", Toast.LENGTH_LONG).show();
}
});
}
}
ধাপ ৪: SingleTonExample.java-এ clearInstance() মেথড বাস্তবায়ন করুন
package com.example.andy.myapplication;
import android.app.Dialog;
import android.content.Context;
import android.view.Window;
import org.json.JSONObject;
import java.util.Arrays;
public class SingleTonExample {
private Context appContext;
private Dialog dialog;
JSONObject i1;
private static SingleTonExample ourInstance = new SingleTonExample();
public void init(Context context) {
if (appContext == null) {
this.appContext = context;
}
}
private Context getContext() {
return appContext;
}
public static Context get() {
return getInstance().getContext();
}
public static synchronized SingleTonExample getInstance() {
return ourInstance;
}
private SingleTonExample() { }
public void clearInstance() {
ourInstance = null;
}
}
গুরুত্বপূর্ণ সতর্কতা
ourInstance = null সেট করার পরপর getInstance() কল করলে NullPointerException হবে। এই পদ্ধতি সাধারণত প্রস্তাবিত হয় না। বরং:
- Map/List ক্লিয়ার করুন:
map.clear() - রিসেট মেথড তৈরি করুন:
reset() - বিল্ডার প্যাটার্ন ব্যবহার করুন
অ্যাপ্লিকেশন চালান
আপনার অ্যান্ড্রয়েড ডিভাইস কম্পিউটারের সাথে সংযুক্ত করুন। Android Studio-তে প্রজেক্টের অ্যাক্টিভিটি ফাইল খুলুন এবং টুলবার থেকে Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং আউটপুট দেখুন।

উপরের বাটনে ক্লিক করলে ইনস্ট্যান্স ক্লিয়ার হবে এবং Toast দেখাবে:
