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

एंड्रॉइड में सिंगलटन इंस्टेंस कैसे क्लियर करें?

एंड्रॉइड में सिंगलटन इंस्टेंस क्लियर करना

यह ट्यूटोरियल सिंगलटन पैटर्न को लागू करते हुए उसके इंस्टेंस को प्रोग्रामेटिकली क्लियर/रिसेट करने की क्षमता के साथ दिखाता है।

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

Android Studio में File → New Project चुनें।

चरण 2: लेआउट फ़ाइल (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"
    android:orientation="vertical"
    android:gravity="center"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btnClear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="सिंगलटन इंस्टेंस क्लियर करें"
        android:padding="16dp" />

</LinearLayout>

चरण 3: ClearableSingleton.java

package com.example.clearsingleton;

import android.content.Context;

public class ClearableSingleton {

    private static volatile ClearableSingleton instance;
    private Context appContext;
    private Object storedData; // कोई भी डेटा स्टोर कर सकता है

    private ClearableSingleton() {}

    public static ClearableSingleton getInstance() {
        if (instance == null) {
            synchronized (ClearableSingleton.class) {
                if (instance == null) {
                    instance = new ClearableSingleton();
                }
            }
        }
        return instance;
    }

    public void init(Context context) {
        if (appContext == null) {
            this.appContext = context.getApplicationContext();
        }
    }

    public Context getContext() {
        return appContext;
    }

    public static Context getGlobalContext() {
        return getInstance().getContext();
    }

    // डेटा स्टोर करें
    public void setData(Object data) {
        this.storedData = data;
    }

    public Object getData() {
        return storedData;
    }

    // इंस्टेंस क्लियर करें - नया इंस्टेंस बनाता है
    public static void clearInstance() {
        synchronized (ClearableSingleton.class) {
            instance = new ClearableSingleton();
        }
    }

    // वैकल्पिक: केवल डेटा क्लियर करें, इंस्टेंस रखें
    public void clearData() {
        this.storedData = null;
    }
}

चरण 4: MainActivity.java

package com.example.clearsingleton;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private Button btnClear;
    private ClearableSingleton singleton;

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

        btnClear = findViewById(R.id.btnClear);
        singleton = ClearableSingleton.getInstance();
        singleton.init(getApplicationContext());

        // कुछ टेस्ट डेटा सेट करें
        singleton.setData("टेस्ट डेटा: " + System.currentTimeMillis());

        btnClear.setOnClickListener(v -> {
            // इंस्टेंस क्लियर करें
            ClearableSingleton.clearInstance();
            
            // नया इंस्टेंस प्राप्त करें (पुनः इनिशियलाइज़ करने की आवश्यकता)
            singleton = ClearableSingleton.getInstance();
            singleton.init(getApplicationContext());
            
            Toast.makeText(this, "सिंगलटन इंस्टेंस क्लियर किया गया", Toast.LENGTH_LONG).show();
        });
    }
}

दो दृष्टिकोण

1. पूर्ण इंस्टेंस रीसेट (दिखाया गया)

public static void clearInstance() {
    synchronized (ClearableSingleton.class) {
        instance = new ClearableSingleton();
    }
}
  • पूरी तरह से नया इंस्टेंस बनाता है
  • सभी फ़ील्ड रीसेट हो जाते हैं (कंटेक्स्ट सहित)
  • पुनः init(context) कॉल करना आवश्यक

2. केवल डेटा क्लियर करें (वैकल्पिक)

public void clearData() {
    this.storedData = null;
}
  • सिंगलटन इंस्टेंस बरकरार रखता है
  • कंटेक्स्ट संरक्षित रहता है
  • केवल स्टोर किया गया डेटा साफ़ होता है

ऐप चलाएं

"सिंगलटन इंस्टेंस क्लियर करें" पर क्लिक करें। टोस्ट पुष्टि करेगा कि इंस्टेंस रीसेट हो गया है।

एंड्रॉइड में सिंगलटन इंस्टेंस कैसे क्लियर करें? एंड्रॉइड में सिंगलटन इंस्टेंस कैसे क्लियर करें?

उपयोग के मामले: उपयोगकर्ता लॉगआउट, सेशन समाप्ति, कॉन्फ़िगरेशन रीसेट, या टेस्टिंग।

  1. एंड्रॉइड में नोटिफिकेशन इंटेंट को स्वयं कैसे साफ़ करें? एंड्रॉइड में नोटिफिकेशन इंटेंट को स्वयं कैसे साफ़ करें?

    यह ट्यूटोरियल दर्शाता है कि एक नोटिफिकेशन कैसे बनाया जाए जो **उपयोगकर्ता इंटरैक्शन पर स्वयं साफ़ हो जाए** - या तो टैप करने पर (डिफ़ॉल्ट) या एक्शन बटन के माध्यम से। यह मानक `setAutoCancel(true)` और कस्टम खारिज करने वाले PendingIntent दोनों को कवर करता है। दृष्टिकोण 1: सरल ऑटो-कैंसिल (टैप पर) सबसे आम

  1. एंड्रॉइड कैश क्लियर करने की त्वरित और सुरक्षित गाइड एंड्रॉइड कैश क्लियर करने की त्वरित और सुरक्षित गाइड

    ब्लॉग सारांश – आपके फोन पर अनावश्यक डेटा स्टोरेज भर सकता है। स्मार्ट फोन क्लीनर का उपयोग करके एंड्रॉइड कैश क्लीन करें क्योंकि यह आपके डिवाइस पर अनावश्यक चीजों से छुटकारा पाने का सबसे तेज और आसान तरीका है। समय के साथ, आपका फोन अनावश्यक डेटा से भर जाता है और यह डिवाइस के प्रदर्शन को प्रभावित कर

  1. एंड्रॉइड पर कैश क्लियर करने की स्टेप-बाय-स्टेप गाइड – तेज़ परफॉरमेंस के लिए एंड्रॉइड पर कैश क्लियर करने की स्टेप-बाय-स्टेप गाइड – तेज़ परफॉरमेंस के लिए

    क्या आपने कभी किसी इंसान को हर गुजरते दिन के साथ जवां होते देखा है? नहीं? खैर यह सच है! और गैजेट्स के लिए भी यही सच है! आप शायद ही कोई गैजेट पाएंगे जो उपयोग करने पर स्मूथ चलता हो। लेकिन क्या आपने कभी सोचा है कि ऐसा क्यों है? अगर हम कंप्यूटर की बात करें, तो वे धीमे काम करते हैं क्योंकि उनके पास डेटा