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/btnSave"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="सिंगलटन में सरणी सेव करें"
        android:padding="16dp" />

</LinearLayout>

चरण 3: ArraySingleton.java

package com.example.arraysingleton;

import android.content.Context;
import java.util.Arrays;

public class ArraySingleton {

    private static volatile ArraySingleton instance;
    private int[] storedArray;
    private Context appContext;

    private ArraySingleton() {}

    public static ArraySingleton getInstance() {
        if (instance == null) {
            synchronized (ArraySingleton.class) {
                if (instance == null) {
                    instance = new ArraySingleton();
                }
            }
        }
        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 storeArray(int[] array) {
        this.storedArray = array != null ? array.clone() : new int[0];
    }

    // सरणी प्राप्त करें
    public int[] getArray() {
        return storedArray != null ? storedArray.clone() : new int[0];
    }

    // सरणी स्ट्रिंग प्रतिनिधित्व प्राप्त करें
    public String getArrayAsString() {
        return Arrays.toString(storedArray);
    }

    // साफ़ करें
    public void clear() {
        storedArray = new int[0];
    }
}

चरण 4: MainActivity.java

package com.example.arraysingleton;

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 btnSave;
    private ArraySingleton singleton;
    private final int[] sampleArray = {33, 12, 98, 45, 67, 23};

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

        btnSave = findViewById(R.id.btnSave);
        singleton = ArraySingleton.getInstance();
        singleton.init(getApplicationContext());

        btnSave.setOnClickListener(v -> {
            // सिंगलटन में सरणी स्टोर करें
            singleton.storeArray(sampleArray);

            // ग्लोबल कंटेक्स्ट का उपयोग करके टोस्ट दिखाएं
            Toast.makeText(
                ArraySingleton.getGlobalContext(),
                "स्टोर की गई सरणी: " + singleton.getArrayAsString(),
                Toast.LENGTH_LONG
            ).show();
        });
    }
}

मुख्य अवधारणाएं

  1. ग्लोबल कंटेक्स्ट: getApplicationContext() का उपयोग करके एक्टिविटी लीक से बचें
  2. रक्षात्मक कॉपी: clone() आंतरिक सरणी को बाहरी संशोधन से बचाता है
  3. नल सुरक्षा: नल सरणी को खाली सरणी के रूप में संभालता है
  4. थ्रेड सुरक्षा: डबल-चेक्ड लॉकिंग के साथ volatile

ऐप चलाएं

बटन पर क्लिक करें। ग्लोबल कंटेक्स्ट का उपयोग करके टोस्ट सरणी मान दिखाएगा: [33, 12, 98, 45, 67, 23]।

एंड्रॉइड में ग्लोबल कंटेक्स्ट के साथ सिंगलटन में सरणी कैसे स्टोर करें? एंड्रॉइड में ग्लोबल कंटेक्स्ट के साथ सिंगलटन में सरणी कैसे स्टोर करें?

सर्वोत्तम अभ्यास: बड़े डेटा सेट के लिए, सरणी के बजाय डेटाबेस या SharedPreferences का उपयोग करने पर विचार करें।

  1. एंड्रॉइड में BroadcastReceiver के साथ नोटिफिकेशन कैसे बनाएँ? एंड्रॉइड में BroadcastReceiver के साथ नोटिफिकेशन कैसे बनाएँ?

    यह ट्यूटोरियल दर्शाता है कि **BroadcastReceiver** के साथ **AlarmManager** का उपयोग करके नोटिफिकेशन कैसे बनाए और शेड्यूल किए जाएँ। यह पैटर्न ऐप प्रोसेस न चलने पर भी सटीक समय-आधारित डिलीवरी सक्षम करता है। आर्किटेक्चर अवलोकन MainActivity → AlarmManager.setExact() → PendingIntent (Broadcast) → My

  1. Android में ग्लोबल वेरिएबल कैसे घोषित करें? Android में ग्लोबल वेरिएबल कैसे घोषित करें?

    सिंगलटन पैटर्न से ग्लोबल वेरिएबल Android में ग्लोबल वेरिएबल के लिए सिंगलटन क्लास पैटर्न का उपयोग करना सर्वोत्तम अभ्यास है। यह उदाहरण दर्शाता है कि एक सिंगलटन क्लास बनाकर पूरे ऐप में डेटा कैसे साझा करें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट (activity_

  1. एंड्रॉइड में JSON एरे को कैसे इटरेट करें एंड्रॉइड में JSON एरे को कैसे इटरेट करें

    org.json लाइब्रेरी का उपयोग करके JSON एरे पार्स करना और इटरेट करना एंड्रॉइड में बिल्ट-इन org.json पैकेज (JSONArray, JSONObject) का उपयोग करके JSON डेटा पार्स किया जा सकता है। यह उदाहरण एक JSON स्ट्रिंग से एरे निकालकर उसे लूप के माध्यम से प्रोसेस करना दिखाता है। चरण 1: नया प्रोजेक्ट बनाएं Android St