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

Android में ब्रॉडकास्ट रिसीवर के लिए कस्टम इंटेंट फिल्टर कैसे रजिस्टर करें?

डायनामिक ब्रॉडकास्ट रिसीवर के साथ कस्टम इंटेंट फिल्टर

इंटेंट फिल्टर Android को बताता है कि कौन से इंटेंट्स एक कंपोनेंट हैंडल कर सकता है। डायनामिक रजिस्ट्रेशन कोड में होता है (मैनिफेस्ट में नहीं), और onPause() में अनरजिस्टर करना जरूरी है।

चरण 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:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btnRegister"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="रिसीवर रजिस्टर करें" />

    <Button
        android:id="@+id/btnSend"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="ब्रॉडकास्ट भेजें" />

</LinearLayout>

चरण 3: MainActivity.java - डायनामिक रजिस्ट्रेशन

package com.example.andy.myapplication;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private static final String CUSTOM_ACTION = "com.example.andy.CUSTOM_INTENT";
    private BroadcastReceiver customReceiver;

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

        Button btnRegister = findViewById(R.id.btnRegister);
        Button btnSend = findViewById(R.id.btnSend);

        // ब्रॉडकास्ट रिसीवर परिभाषित करें
        customReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                Toast.makeText(MainActivity.this, 
                    "प्राप्त: " + action, Toast.LENGTH_LONG).show();
            }
        };

        // रजिस्टर बटन
        btnRegister.setOnClickListener(v -> {
            IntentFilter filter = new IntentFilter(CUSTOM_ACTION);
            registerReceiver(customReceiver, filter);
            Toast.makeText(this, "रिसीवर रजिस्टर किया गया", Toast.LENGTH_SHORT).show();
        });

        // ब्रॉडकास्ट भेजें बटन
        btnSend.setOnClickListener(v -> {
            Intent intent = new Intent(CUSTOM_ACTION);
            sendBroadcast(intent);
        });
    }

    @Override
    protected void onPause() {
        super.onPause();
        // लीक रोकने के लिए अनरजिस्टर करें
        if (customReceiver != null) {
            unregisterReceiver(customReceiver);
        }
    }
}

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

  • डायनामिक बनाम स्टेटिक: कोड में रजिस्टर = डायनामिक (ऐप चलने पर ही सक्रिय); मैनिफेस्ट में = स्टेटिक (ऐप इंस्टॉल होने पर सक्रिय)।
  • लाइफसाइकिल: onPause() में अनरजिस्टर करें वरना मेमोरी लीक और क्रैश होगा।
  • कस्टम एक्शन: यूनिक स्ट्रिंग उपयोग करें (पैकेज नाम प्रीफिक्स के साथ)।
  • sendBroadcast(): सभी मैचिंग रिसीवर्स को असिंक्रोनसली डिलीवर करता है।

फ्लो:

  1. "रिसीवर रजिस्टर करें" दबाएं → रिसीवर सक्रिय
  2. "ब्रॉडकास्ट भेजें" दबाएं → कस्टम इंटेंट ब्रॉडकास्ट होता है
  3. रिसीवर का onReceive() कॉल होता है → टोस्ट दिखाता है

Android में ब्रॉडकास्ट रिसीवर के लिए कस्टम इंटेंट फिल्टर कैसे रजिस्टर करें?

Android में ब्रॉडकास्ट रिसीवर के लिए कस्टम इंटेंट फिल्टर कैसे रजिस्टर करें?

सुरक्षा नोट: Android 14+ में एक्सपोर्टेड रिसीवर्स के लिए RECEIVER_EXPORTED/RECEIVER_NOT_EXPORTED फ्लैग्स जरूरी हैं।

  1. Android में BroadcastReceiver को प्रोग्रामेटिकली कैसे रजिस्टर करें? Android में BroadcastReceiver को प्रोग्रामेटिकली कैसे रजिस्टर करें?

    Android में प्रोग्रामेटिकली BroadcastReceiver रजिस्टर करना यह उदाहरण दर्शाता है कि Android ऐप में BroadcastReceiver को कोड के माध्यम से (प्रोग्रामेटिकली) कैसे रजिस्टर किया जाता है। यह दृष्टिकोण तब उपयोगी होता है जब आप रनटाइम पर डायनामिकली ब्रॉडकास्ट सुनना चाहते हैं, जैसे नेटवर्क कनेक्टिविटी परिवर्तन

  1. Android में SearchView से RecyclerView कैसे फ़िल्टर करें? Android में SearchView से RecyclerView कैसे फ़िल्टर करें?

    Android में SearchView से RecyclerView फ़िल्टर करना यह ट्यूटोरियल दिखाता है कि कैसे RecyclerView में SearchView का उपयोग करके रियल-टाइम फ़िल्टरिंग इम्प्लीमेंट की जाती है, Filterable इंटरफेस और कस्टम एडाप्टर के साथ। चरण 1: प्रोजेक्ट और निर्भरताएं Android Studio में नया प्रोजेक्ट बनाएं। RecyclerView

  1. एंड्रॉयड पर कस्टम जेस्चर कैसे जोड़ें एंड्रॉयड पर कस्टम जेस्चर कैसे जोड़ें

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