Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> 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">

    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="टेक्स्ट दर्ज करें" />

    <Button
        android:id="@+id/save"
        android:text="सिंगलटन में सेव करें"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

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

चरण 3: MainActivity.java

package com.example.singletonclass;

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

public class MainActivity extends AppCompatActivity {

    EditText editText;
    Button save;

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

        editText = findViewById(R.id.editText);
        save = findViewById(R.id.save);

        save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (editText.getText().toString().isEmpty()) {
                    editText.setError("टेक्स्ट दर्ज करें");
                } else {
                    String editValue = editText.getText().toString();
                    SingletonExample singletonExample = SingletonExample.getInstance();
                    singletonExample.setText(editValue);
                    Toast.makeText(MainActivity.this, singletonExample.getText(), Toast.LENGTH_LONG).show();
                }
            }
        });
    }
}

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

package com.example.singletonclass;

public class SingletonExample {

    private String editValue;
    private static final SingletonExample ourInstance = new SingletonExample();

    public static SingletonExample getInstance() {
        return ourInstance;
    }

    private SingletonExample() { }

    public void setText(String editValue) {
        this.editValue = editValue;
    }

    public String getText() {
        return editValue;
    }
}

ऐप चलाएं

ऐप चलाएं, एडिटटेक्स्ट में कुछ टाइप करें (जैसे "tutorialspoint.com") और "सिंगलटन में सेव करें" बटन दबाएं। टोस्ट में सिंगलटन से पुनर्प्राप्त वही टेक्स्ट दिखाई देगा।

मुख्य बिंदु

  • सिंगलटन ऐप-वाइड डेटा शेयरिंग के लिए ग्लोबल एक्सेस पॉइंट प्रदान करता है
  • प्राइवेट कंस्ट्रक्टर बाहरी इंस्टेंशिएशन रोकता है
  • स्थिर getInstance() मेथड एकमात्र इंस्टेंस तक पहुंच देता है
  • सरल डेटा होल्डर के लिए आदर्श (कॉन्फिगरेशन, कैश, यूज़र सेशन आदि)
  • नोट: आधुनिक Android में डिपेंडेंसी इंजेक्शन (Hilt/Koin) या ViewModel को प्राथमिकता दें
  1. Android में runOnUiThread का उपयोग कैसे करें? Android में runOnUiThread का उपयोग कैसे करें?

    runOnUiThread() क्या है? कभी-कभी मेन थ्रेड भारी ऑपरेशन्स करता है। यदि यूजर UI पर कुछ अतिरिक्त ऑपरेशन्स जोड़ना चाहता है, तो यह लोड हो जाता है और ANR (Application Not Responding) देता है। runOnUiThread का उपयोग करके बैकग्राउंड ऑपरेशन्स वर्कर थ्रेड पर करके रिजल्ट को मेन थ्रेड पर अपडेट किया जा सकता है।

  1. एंड्रॉइड लोडर का उपयोग कैसे करें? एंड्रॉइड लोडर का उपयोग कैसे करें?

    एंड्रॉइड में लोडर (लीगेसी) बनाम आधुनिक विकल्प लोडर (android.app.LoaderManager, CursorLoader) API 28 में डिप्रिकेट हो गए हैं। नए कोड के लिए, ViewModel + LiveData/Flow + Room/Paging 3 या Coroutines + Flow का उपयोग करें। यह लेख लीगेसी लोडर API को संदर्भ के लिए दस्तावेज करता है और आधुनिक प्रतिस्थापन दिख

  1. LocalBroadcastManager का उपयोग कैसे करें? LocalBroadcastManager का उपयोग कैसे करें?

    LocalBroadcastManager - ऐप-आंतरिक इवेंट बस नोट: LocalBroadcastManager **डिप्रिकेट** है (AndroidX 1.1.0+ से)। आधुनिक ऐप्स को **LiveData/Flow**, **RxJava**, या **इवेंट बस लाइब्रेरी (greenrobot EventBus, Kotlin Channel/Flow)** का उपयोग करना चाहिए। यह लेख लीगेसी API को दस्तावेज करता है और माइग्रेशन पथ द