Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android में ग्लोबल कॉन्टेक्स्ट के साथ सिंगलटन का उपयोग कैसे करें?

सिंगलटन डिज़ाइन पैटर्न क्या है?

सिंगलटन एक डिज़ाइन पैटर्न है जो किसी क्लास के इंस्टेंशिएशन को केवल एक इंस्टेंस तक सीमित करता है। इसके प्रमुख उपयोगों में कंकरेंसी को नियंत्रित करना और एप्लिकेशन के लिए उसके डेटा स्टोर तक पहुंचने का एक केंद्रीय बिंदु बनाना शामिल है।

उदाहरण: ग्लोबल कॉन्टेक्स्ट के साथ सिंगलटन

यह उदाहरण दर्शाता है कि Android में ग्लोबल कॉन्टेक्स्ट के साथ सिंगलटन पैटर्न को कैसे लागू किया जाए।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में जाएं, File → New Project चुनें और आवश्यक विवरण भरकर एक नया प्रोजेक्ट बनाएं।

चरण 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="सिंगलटन में ग्लोबल कॉन्टेक्स्ट से टोस्ट दिखाएं"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

उपरोक्त कोड में हमने एक बटन लिया है। जब उपयोगकर्ता शो बटन पर क्लिक करता है, तो यह ग्लोबल कॉन्टेक्स्ट का उपयोग करके टोस्ट दिखाएगा।

चरण 3: MainActivity.java में कोड जोड़ें

package com.example.singletonglobalcontext;

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

public class MainActivity extends AppCompatActivity {

    Button show;
    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) {
                Toast.makeText(SingletonExample.get(), "ग्लोबल कॉन्टेक्स्ट के साथ दिखा रहे हैं", Toast.LENGTH_LONG).show();
            }
        });
    }
}

चरण 4: सिंगलटन क्लास बनाएं (SingletonExample.java)

package com.example.singletonglobalcontext;

import android.content.Context;

public class SingletonExample {

    private Context appContext;
    private static final 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() { }
}

ऐप चलाएं

अपने Android डिवाइस को कंप्यूटर से कनेक्ट करें। Android Studio में टूलबार से Run आइकन पर क्लिक करें। अपना मोबाइल डिवाइस चुनें और ऐप लॉन्च होने की प्रतीक्षा करें।

अब "सिंगलटन में ग्लोबल कॉन्टेक्स्ट से टोस्ट दिखाएं" बटन पर क्लिक करें। यह ग्लोबल कॉन्टेक्स्ट का उपयोग करके एक टोस्ट संदेश प्रदर्शित करेगा।

मुख्य बिंदु

  • सिंगलटन पैटर्न सुनिश्चित करता है कि पूरे ऐप में केवल एक इंस्टेंस मौजूद हो
  • ग्लोबल कॉन्टेक्स्ट (Application Context) का उपयोग करके मेमोरी लीक से बचा जा सकता है
  • getApplicationContext() एक ऐसा कॉन्टेक्स्ट प्रदान करता है जो एक्टिविटी लाइफसाइकल से बंधा नहीं होता
  • थ्रेड-सेफ्टी के लिए synchronized कीवर्ड का उपयोग किया गया है
  1. Android में ConcurrentLinkedDeque का उपयोग कैसे करें? Android में ConcurrentLinkedDeque का उपयोग कैसे करें?

    ConcurrentLinkedDeque क्या है? ConcurrentLinkedDeque एक अनबाउंडेड थ्रेड-सेफ डीक्यू (deque - double-ended queue) है जो लिंक्ड नोड्स पर आधारित है। एकाधिक थ्रेड्स सुरक्षित रूप से दोनों छोरों से तत्व जोड़/हटा सकते हैं। उदाहरण: ConcurrentLinkedDeque का उपयोग यह उदाहरण दर्शाता है कि Android में Concurre

  1. फ्रैगमेंट में कॉन्टेक्स्ट का उपयोग कैसे करें? फ्रैगमेंट में कॉन्टेक्स्ट का उपयोग कैसे करें?

    फ्रैगमेंट में Context प्राप्त करना - सही तरीके एक फ्रैगमेंट Context नहीं है, लेकिन इसके पास कई मान्य स्रोतों के माध्यम से एक तक पहुंच है। गलत स्रोत चुनने से लीक, क्रैश, या गलत थीम/संसाधन होते हैं। त्वरित संदर्भ तालिका स्रोतउपलब्धजीवनचक्रउपयोग-मामला requireContext()onAttach के बादफ्रैगमेंट से जु

  1. ConstraintLayout के साथ RecyclerView का उपयोग कैसे करें? ConstraintLayout के साथ RecyclerView का उपयोग कैसे करें?

    RecyclerView आइटम लेआउट के रूप में ConstraintLayout ConstraintLayout एक फ्लैट व्यू पदानुक्रम (नेस्टिंग के बिना) की अनुमति देता है, जो RecyclerView आइटम के लिए प्रदर्शन में सुधार करता है। यह गाइड एक कार्ड-शैली ग्रिड आइटम के लिए एक प्रतिक्रियाशील, बाधा-आधारित आइटम लेआउट दिखाता है। निर्भरताएं dependen