উদাহরণে যাওয়ার আগে, আমাদের জানা উচিত সিঙ্গলটন ডিজাইন প্যাটার্ন কী। একটি সিঙ্গেলটন হল একটি ডিজাইন প্যাটার্ন যা একটি ক্লাসের ইনস্ট্যান্টেশনকে শুধুমাত্র একটি উদাহরণে সীমাবদ্ধ করে। উল্লেখযোগ্য ব্যবহারগুলির মধ্যে রয়েছে কনকারেন্সি নিয়ন্ত্রণ করা এবং কোনও অ্যাপ্লিকেশনের ডেটা স্টোর অ্যাক্সেস করার জন্য অ্যাক্সেসের একটি কেন্দ্রীয় পয়েন্ট তৈরি করা৷
এই উদাহরণটি দেখায় কিভাবে Android-এ Singleton instance সাফ করা যায়
ধাপ 1 − অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন, ফাইল ⇒ নতুন প্রকল্পে যান এবং একটি নতুন প্রকল্প তৈরি করতে সমস্ত প্রয়োজনীয় বিবরণ পূরণ করুন৷
ধাপ 2 − 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 singleTone" android:layout_width = "wrap_content" android:layout_height = "wrap_content" /> </LinearLayout>
উপরের কোডে, আমরা একটি বোতাম নিয়েছি। ব্যবহারকারী যখন শো বোতামে ক্লিক করেন, তখন এটি সিঙ্গলটন ইনস্ট্যান্স সাফ করবে।
ধাপ 3 − src/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 Single tone instance", Toast.LENGTH_LONG).show(); } }); } }
উপরের কোডে, আমরা singleTonExample ব্যবহার করেছি singleton ক্লাস হিসেবে তাই singleTonExample.java নামে একটি কল তৈরি করুন এবং নিম্নলিখিত কোড যোগ করুন-
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; } }
আপনার অ্যাপ্লিকেশন চালানোর চেষ্টা করা যাক. আমি ধরে নিচ্ছি আপনি আপনার কম্পিউটারের সাথে আপনার আসল অ্যান্ড্রয়েড মোবাইল ডিভাইসটি সংযুক্ত করেছেন৷ অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি চালাতে, আপনার প্রোজেক্টের অ্যাক্টিভিটি ফাইলগুলির একটি খুলুন এবং টুলবার থেকে রান আইকনে ক্লিক করুন। একটি বিকল্প হিসাবে আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং তারপরে আপনার মোবাইল ডিভাইসটি পরীক্ষা করুন যা আপনার ডিফল্ট স্ক্রীন প্রদর্শন করবে –
এখন উপরের বোতামে ক্লিক করুন, এটি নীচে দেখানো উদাহরণটি পরিষ্কার করবে –