studio ejemplo android xml broadcastreceiver localbroadcastmanager

ejemplo - localbroadcastmanager android studio



Registrar un BroadcastReceiver local en AndroidManifest.xml? (1)

¿Hay alguna forma de registrar un BroadcastReceiver en AndroidManifest.xml y recibir la difusión que es enviada por un LocalBroadcastManager?

Actualmente debo llamar

registerReceiver(BroadcastReceiver receiver, IntentFilter filter)

para registrar un receptor, declare en AndroidManifest.xml no funcionará. Pero esto significa que debo saber exactamente el nombre del paquete y el nombre de la clase del receptor, no solo el filtro de intento. ¿Es posible declarar el receptor en el archivo de manifiesto?

siguiente es mi código actual.

AndroidManifest.xml:

... <receiver android:name="com.example.test.MessageReceiver" android:enabled="true" > <intent-filter> <action android:name="com.m2x.test.intent.MESSAGE_RECEIVED" /> </intent-filter> </receiver> ...

MainActivity.java:

Intent intent = new Intent(); intent.setAction("com.m2x.test.intent.MESSAGE_RECEIVED"); LocalBroadcastManager manager = LocalBroadcastManager.getInstance(mContext.get()); manager.sendBroadcast(intent);

MessageReceiver.java

public class MessageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("com.m2x.test.intent.MESSAGE_RECEIVED")) { Toast.makeText(context, "user message received", Toast.LENGTH_SHORT).show(); } } }


No, no puedes.

El BroadcastReceiver local no es un BroadcastReceiver real, básicamente es una lista de funciones de callbacks de callbacks .
Puede verificar el código fuente de LocalBroadcastManager.java .