BroadcastReceiver的两种注册方式和使用

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

静态注册(在 AndroidManifest.xml 中 )

<receiver android:name=".BroadcastReceiverDemo" >
            <intent-filter>
                <action android:name="com.simware.BroadcastReceiverDemo" >
                </action>
            </intent-filter>
</receiver>

 

创建一个BroadcastReceiver

public class BroadcastReceiverDemo extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        String msg = intent.getStringExtra("message");
        Toast.makeText(context, msg, Toast.LENGTH_LONG).show();

    }

}

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

		Intent mIntent = new Intent("com.simware.BroadcastReceiverDemo");
                mIntent.putExtra("message", showText.getText().toString());
                sendBroadcast(mIntent);


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

 

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

registerReceiver(BroadcastReceiver receiver, IntentFilterfilter) 

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

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


示例代码下载地址



  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值