tee*_*joe 28 xml android broadcastreceiver localbroadcastmanager
无论如何在AndroidManifest.xml中注册BroadcastReceiver并接收由LocalBroadcastManager发送的广播?
目前我必须打电话
registerReceiver(BroadcastReceiver receiver, IntentFilter filter)
Run Code Online (Sandbox Code Playgroud)
要注册一个Receiver,在AndroidManifest.xml中声明将无法正常工作.但这意味着我必须确切地知道接收者的包名和类名,而不仅仅是意图过滤器.是否可以在清单文件中声明接收器?
以下是我目前的代码.
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>
...
Run Code Online (Sandbox Code Playgroud)
MainActivity.java:
Intent intent = new Intent();
intent.setAction("com.m2x.test.intent.MESSAGE_RECEIVED");
LocalBroadcastManager manager = LocalBroadcastManager.getInstance(mContext.get());
manager.sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Jaf*_*KhQ 48
不,你不能.
本地BroadcastReceiver不是真实的BroadcastReceiver,基本上是它的callbacks功能列表.
您可以检查LocalBroadcastManager.java的源代码.