Deepesh mhatre Ответов: 1

Откуда андроид знает, который приемник BroadcastReceiver, чтобы позвонить ?


Внутри моего приложения для Android я создал простой Broadcastreceiverclass , а также добавил его в файл манифеста.


Теперь мой вопрос заключается в том , как Android узнает, какой класс Broadcastreceiver вызывать, если все, что мы можем добавить внутри файла Menifest, - это действия под тегом eceiver.

Кроме того , так ли это, что мы можем создать только один класс Broadcasreceiver в приложении для Android ?
или мы можем создать несколько номеров класса Broadcastreceiver ?




ДОБАВЛЕНО В ФАЙЛ МАНИФЕСТА :

<receiver android:name=".MyBroadcast">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <action android:name="android.intent.action.AIRPLANE_MODE"/>
    </intent-filter>
</receiver>




КЛАСС BROADCASTRECEIVER :


package com.deepesh.broadcastapp;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;

public class MyBroadcast extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())){
            Toast.makeText(context, "Boot completed !", Toast.LENGTH_SHORT).show();
            Log.d("Keyy","Boot completed !");
        }else if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(intent.getAction())){
            Toast.makeText(context, "Airplane mode changed !", Toast.LENGTH_SHORT).show();
            Log.d("Keyy","Airplane mode changed ! !");
        }

    }
}


Что я уже пробовал:

Попробовал гугл но никакого конкретного ответа на мой запрос я не нашел

David Crow

Вы можете создать как можно больше BroadcastReceiver-производные классы, как вам нужно. Вызов registerReceiver() для каждого из них.

1 Ответов

Рейтинг:
0

Richard MacCutchan

Все это объясняется в документации: Обзор трансляций  |  Разработчики Android[^].