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

本文介绍如何在两个Android应用之间进行广播通信。通过在test2应用中发送广播,然后在test1应用中接收并处理广播。在test1中创建BroadcastReceiver子类,并动态注册,注意当接收多个action时需分别注册。同时别忘了在适当位置解除注册。在test2应用中,确保发送的广播action与接收端匹配。

需求:两个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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值