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);