您的位置:首页 > 移动开发

两个app间发送广播(动态)

2016-05-25 15:23 197 查看
需求:两个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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  需求