需求:两个app间发送广播
在两个app间发送广播和正常发送广播其实差不多。
新建两个android项目,项目name为test1,test2。需求:在test2中发广播,在test1中接受广播。
一,test1部分
先创建一个java类继承BroadcastReceiver类,用来在 onReceive()方法中处理获得的广播。
public class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
当test2发送广播后,在这里接受并处理收到的广播。
}
}
在java代码中动态注册,代码如下:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("你接受的action");
myReceiver = new MyReceiver();
registerReceiver(myReceiver, intentFilter2);
这里我多提一下,当有多个action要接受,比如你接受一个app发送的广播,又接受一个系统的广播,这时需注册两次,不然可能会接收不到全部的广播。代码如下:
IntentFilter intentFilter1 = new IntentFilter();
intentFilter1.addAction("你接受的action1");
IntentFilter intentFilter2 = new IntentFilter();
intentFilter2.addAction("你接受的action2");
myReceiver = new MyReceiver();
registerReceiver(myReceiver, intentFilter1);
registerReceiver(myReceiver, intentFilter2);
不要忘记释放注册的广播,一般在ondestory()方法中释放:代码如下:
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(myReceiver);
}
二, test2部分
在java代码中发送广播,发送的action与test1中接受到的action要一致,代码如下:
Intent intent = new Intent();
intent.setAction("你发送的action");
this.sendBroadcast(intent);
本文介绍如何在两个Android应用之间进行广播通信。通过在test2应用中发送广播,然后在test1应用中接收并处理广播。在test1中创建BroadcastReceiver子类,并动态注册,注意当接收多个action时需分别注册。同时别忘了在适当位置解除注册。在test2应用中,确保发送的广播action与接收端匹配。
&spm=1001.2101.3001.5002&articleId=51498766&d=1&t=3&u=d9ef0069c20d4ce69cb3f954a50376cf)
2364

被折叠的 条评论
为什么被折叠?



