实现一个BroadcastReceiver
public class MyAndroidReceiver extends BroadcastReceiver
override onReceive(Context context, Intents Intents)
注册BroadcastReceiver
在AndroidManifest.xml文件当中进行注册
<receiver Android:name=“MyAndroidReceiver">
<Intents-filter>
<action Android:name=”com.great.action.NEW_BROADCAST”/>
</Intents-filter>
</receiver>
在代码当中直接进行注册
IntentsFilter filter = new IntentsFilter(NEW_BROADCAST );
MyAndroidReceiver MyAndroidReceiver = new MyAndroidReceiver();
registerReceiver(MyAndroidReceiver , filter);
1.XML注册
<receiver android:name="BroadcastReceiver_Demo1"> <intent-filter> <action android:name="com.great.action.myaction"/> </intent-filter> </receiver>
实现广播继承类
1 public class BroadcastReceiver_Demo1 extends BroadcastReceiver 2 { 3 public BroadcastReceiver_Demo1() 4 { 5 System.out.println("BroadcastReceiver_Demo1 --> 构造函数!!!"); 6 } 7 8 9 @Override 10 public void onReceive(Context context, Intent intent) 11 { 12 System.out.println("BroadcastReceiver_Demo1 --> onReceive!!!"); 13 Bundle bundle = intent.getExtras(); 14 if(bundle != null) 15 { 16 Object[] arrObj = bundle.keySet().toArray(); 17 System.out.println("=====接收广播内容(开始)====="); 18 for(int i = 0; i < arrObj.length; i++) 19 { 20 String strKey = arrObj[i].toString(); 21 System.out.println("key=" + strKey + " value=" + String.valueOf(bundle.get(strKey))); 22 } 23 System.out.println("=====接收广播内容(结束)====="); 24 } 25 } 26 }
广播发送类
1 //注册广播接收器,注册方法二:在代码中注册 2 //创建一个 BroadcastReceiver_Demo1对象,然后我们就要对他进行设置了 3 BroadcastReceiver_Demo1 bcr = new BroadcastReceiver_Demo1(); 4 //创建一个IntentFilter的对象,这就和上个例子中的intent-filter标签一样,我们要往里面添加过滤器 5 IntentFilter intentFilter = new IntentFilter(); 6 //添加一个的 intent action,用来接收当时区改变的消息 7 //intentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED); 8 9 //添加一个的 intent action,用来接收自定义的消息 10 intentFilter.addAction("com.great.action.myaction"); 11 //添加完过滤器后,就要将 BroadcastReceiver 对象和相应的过滤器注册在 Activity 上 12 BroadcastDemo1_Activity.this.registerReceiver(bcr, intentFilter); 13 Toast.makeText(BroadcastDemo1_Activity.this, "注册广播接收器成功!!!", Toast.LENGTH_LONG).show(); 14 15 16 //取消注册广播接收器,但带来的好处是,用户可以自己控制开关广播接收器,可控是一个比较大的优势。 17 //注销 BroadcastReceiver 的注册 18 BroadcastDemo1_Activity.this.unregisterReceiver(bcr); 19 20 //发送广播 21 btnSendBroadcast.setOnClickListener(new OnClickListener() 22 { 23 @Override 24 public void onClick(View v) 25 { 26 Intent intent = new Intent(); 27 //实例化 Bundle 对象 28 Bundle bundle = new Bundle(); 29 //设置 Bundle 对象的数据 30 bundle.putString("ID", "1000"); 31 bundle.putString("Name", "张三"); 32 //在 Intent 对象中放入 Bundle 对象 33 intent.putExtras(bundle); 34 intent.setAction("com.great.action.myaction"); 35 sendBroadcast(intent); 36 } 37 });