Android BroadcastReceiver使用,可实现进程间通讯

1、创建广播接收器:

/**
 * 作者:created by meixi
 * 邮箱:[email protected]
 * 日期:2018/11/1 09
 */
public class MyBroadcastReceiver extends BroadcastReceiver {

    //需要实现的方法
    @Override
    public void onReceive(Context context, Intent intent) {

        Log.i("lgq","sssssssMyBroadcastReceiver"+intent.getStringExtra("br"));

    }
}

2、静态注册广播

<receiver android:name="com.administrator.receivers.MyBroadcastReceiver"
    android:exported="true"
    android:enabled="true">

    <intent-filter>
        <action android:name="com.weimore.example.MY_BROADCAST"/>
    </intent-filter>
</receiver>

3、动态注册广播

//自定义的广播接收器
MyBroadcastReceiver mReceiver = new MyBroadcastReceiver();
//过滤器,其中传入一个action
IntentFilter filter = new IntentFilter("com.weimore.example.MY_BROADCAST");
//注册广播
registerReceiver(mReceiver,filter);

需要注意的是,动态注册的广播接收器一定要注销,在onDestroy方法中调用unregisterReceiver(recevier);

4、发送广播

                //创建Intent对象
                Intent intent = new Intent();
//                Intent intent = new Intent( MainActivity.this, MyBroadcastReceiver.class);//静态注册写法
                //指定action
                intent.setAction("com.weimore.example.MY_BROADCAST");//动态注册写法
                intent.putExtra("br","llllgggqqq");
                //发送广播
                sendBroadcast(intent);

5、外部应用通过action发送广播,实现进程间通讯

                Intent intent = new Intent();
//                Intent intent = new Intent( MainActivity.this, MyBroadcastReceiver.class);
                //指定action
                intent.setAction("com.weimore.example.MY_BROADCAST");
                intent.putExtra("br","llllgggqqqweilaisssss");
                //发送广播
                sendBroadcast(intent);

猜你喜欢

转载自blog.csdn.net/meixi_android/article/details/83615930