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 .