BroadcastReceiver的两种注册方式和使用

BroadcastReceiver的两种注册方式和使用

原创  2013年02月20日 18:24:38
  • 20562

BroadcastReceiver是android中的一个非常重要的组件,常用于接收广播信息。广播的注册使用有两种方式:

静态注册(在 AndroidManifest.xml 中 )

[html]  view plain  copy
  1. <receiver android:name=".BroadcastReceiverDemo" >  
  2.             <intent-filter>  
  3.                 <action android:name="com.simware.BroadcastReceiverDemo" >  
  4.                 </action>  
  5.             </intent-filter>  
  6. </receiver>  

 

创建一个BroadcastReceiver

[java]  view plain  copy
  1. public class BroadcastReceiverDemo extends BroadcastReceiver {  
  2.   
  3.     @Override  
  4.     public void onReceive(Context context, Intent intent) {  
  5.         // TODO Auto-generated method stub  
  6.         String msg = intent.getStringExtra("message");  
  7.         Toast.makeText(context, msg, Toast.LENGTH_LONG).show();  
  8.   
  9.     }  
  10.   
  11. }  

在onReceive方法内,可以获取随广播而来的Intent中的数据,这非常重要,就像无线电一样,包含很多有用的信息。在创建完我们的BroadcastReceiver之后,还不能够使它进入工作状态,我们需要为它注册一个指定的广播地址。没有注册广播地址的BroadcastReceiver就像一个缺少选台按钮的收音机,虽然功能俱备,但也无法收到电台的信号。在Manifest.xml文件中已经注册了BroadcastReceiver的广播地址。

[java]  view plain  copy
  1. <span style="font-size:18px;">      </span><span style="font-size:18px;">Intent mIntent = new Intent("com.simware.BroadcastReceiverDemo");  
  2.                 mIntent.putExtra("message", showText.getText().toString());  
  3.                 sendBroadcast(mIntent);</span>  


在Activity发送广播,就触发了广播事件。

 

 动态注册(在代码中注册)

registerReceiver(BroadcastReceiver receiver, IntentFilterfilter) 

第一个参数是我们要处理广播的BroadcastReceiver (广播接收者,可以是系统的,也可以是自定义的);第二个参数是意图过滤器。

总结:在 Activity 中代码注册广播建议在: onResume() 中注册(也可在onCreate里面注册);在 Activity 中代码注销广播建议在: onPuase() 中注销(也可在onDestory里面注销)unregisterReceiver(mBatteryInfoReceiver) 。


示例代码下载地址


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值