我是 Android 新手,并试图了解应用程序之间的通信。
我正在尝试编写 3 个可以相互通信的小应用程序。如果您想向所有人发送消息,您只需使用隐式广播。
隐含意图 intent.setAction("com.example.myChatMessage")
如果您只想处理 1 个特定的接收器,我会使用它
明确的意图intent.setComponent("com.example.test.android.broadcastreceiver.b",
"com.example.test.android.broadcastreceiver.b.myBroadcastReceiver")
当广播接收器是一个单独的类并在 AndroidManifest.xml 中定义时,此方法有效。
我的问题:是否可以显式寻址一个动态注册的广播接收器?
package com.example.test.android.broadcastreceiver.b;
public class MainActivity extends Activity {
private final IntentFilter intentfilter = new IntentFilter("com.example.myChatMessage");
private myBroadcastReceiver broadcastreceiver;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
broadcastreceiver = new myBroadcastReceiver();
registerReceiver(broadcastreceiver, intentfilter);
}
public static class myBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getStringExtra("message");
Log.d("message", "B received: "+message);
}
}
}
它接收所有隐式广播,但没有明确的广播 - 我不知道如何处理它。你能帮助我吗?