Android开发之广播机制进阶

BroadcastReceiver监听被系统广播的事件,所以BroadcastReceiver需要在系统中注册。注册的方式有两种:
       1.在AndroidManifest.xml文件中进行注册
                     <receiver android:name=".MyBroadcastReceiver">
                              <intent-filter>
                                           <action android:name="android.intent.action.EDIT"/>            
                             </intent-filter>
                    </receiver>

       2.在应用程序的代码中进行注册
          注册BroadcastReceiver:registerReceiver(receiver,filter);
          取消注册BroadcastReceiver:unregisterReceiver(receiver);
      两者之间的区别:在AndroidManifest.xml文件中注册的广播接收器,即使应用程序没有启动或者关闭了,也处于活动状态。当有广播时系统仍然后启动这个广播接收器进行处理。在应用程序的代码中注册的广播接收器只有到应用程序正在执行时的时候注册,当要关闭应用程序时可以取消注册,更加的灵活。如果我们的广播接收器接收的广播用来更新Activity的界面时应该采用这种方式注册BroadcastReceiver。
示例:新建一个应用程序项目,在main.xml文件中添加两个Button按钮,点击之后分别注册广播接收器和取消注册广播接收器。注册广播接收器之后当我们向模拟器发送短消息时,打印出短消息的内容。由于在这个程序中广播接收器需要接收短信的广播,所以需要在AndroidManifest.xml文件添加接收短消息广播事件的权限:
     <uses-permission android:name="android.permission.RECEIVE_SMS" /> 。

源代码:
main.xml
     
BR_Activity.java
       
MyBroadcastReceiver.java
     
AndroidManifest.xml
      
运行结果:
界面:
   
当我们点击注册广播接收器按钮后,可以通过DDMS视图下的Emulator Control工具向模拟器发送短消息。发送的号码为123456789,内容为“hello,world!”。如图所示:
     
控制台打印出发送的短消息的内容。

     

当我们点击取消注册广播接收器的按钮之后,再发送短信息时控制台就不打印短消息的内容了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值