BroadcastReceiver的两种注册方式和使用

转载 2018年04月17日 15:45:39

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


示例代码下载地址


Android-8-0新特性-取消大部分静态注册广播

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;今天楼主在写一个广播的demo,功能非常的简单,就是一个应用发送一个自定义的广播,同时在这个应用里面定义了一个广播接受者...
  • pby_qthy
  • pby_qthy
  • 2018-03-20 09:03:30
  • 16

android 限制广播消息的接收者

在android系统中sendBroadcast和BroadcastReceiver。只要BroadcastReceiver指定的action和sendBroadcast action一致就可以就行消...
  • idaretobe
  • idaretobe
  • 2015-02-01 11:41:15
  • 232

02Android学习从零单排之BroadcastReceiver

Android学习从零单排之BroadCastReceiver读了那么多年的书让我明白一个道理。人要稳重,不要想到啥就做啥。做一行越久即使你不会,几年之后慢慢的你也会了,加上一点努力你或许你能成为别人...
  • u010495996
  • u010495996
  • 2016-03-09 01:12:25
  • 544

【Android】Broadcast Receiver的基本使用,推一条广播给多个Receiver

Android所谓的四大组件:Activity,这个大家只要会写Android程序都知道是一个界面的意思,Service,这个专门用来用来后台推送,就是一条没有界面的线程,具体在《【Android】揭...
  • yongh701
  • yongh701
  • 2015-09-30 11:26:31
  • 4070

android中broadcastreceiver的用法-代码中注册

//点击“解绑广播接收器“后再次点击”解绑广播接收器“后,程序崩溃,错误log信息为:FATAL EXCEPTION: main //08-04 05:04:35.420: E/AndroidRunt...
  • jinhoward
  • jinhoward
  • 2013-08-04 13:24:57
  • 2098

Unity与Android——Androidmanifest.xml文件的介绍

说明: 在Unity开发移动平台相关应用程序时,难免会涉及到一些必要的插件(如:社会化分享插件ShareSDK、Umeng;增强现实开发Vufoia;扫描二维码插件等一些列),每一种插件分开使用...
  • zhaoguanghui2012
  • zhaoguanghui2012
  • 2017-10-17 10:06:11
  • 248

android-->BroadcastReceiver(深入理解广播事件)

这个事件说起来简单但是做起来也绕了一会。在此和大家共同学习一下本文主要类容:1:静态注册广播事件(机制分析)2:动态注册广播事件(机制分析)3:优点与缺点4:注意事项 1:  静态注册是指将注册文件放...
  • pdw_jsp
  • pdw_jsp
  • 2011-07-26 15:33:47
  • 2796

BroadcastReceiver应用详解

問渠那得清如許?為有源頭活水來。南宋.朱熹《觀書有感》 据说程序员是最爱学习的群体,IT男都知道,这个行业日新月异,必须不断地学习新知识,不断地为自己注入新鲜的血液,才能使自己跟上技术的步伐。 ...
  • xu_song
  • xu_song
  • 2012-11-12 17:37:18
  • 331

Unity发布成Android包的环境搭建步骤

在Android Studio上测试运行,Unity发布成Android包的环境搭建步骤 以下是环境搭建步骤 1下载安装Java的JDK:   http://www.oracle...
  • kangfeimin
  • kangfeimin
  • 2017-05-05 09:18:07
  • 3650

BroadcastReceiver的两种注册方式

BroadcastReceiver有两种注册方式:静态注册和动态注册。 一,静态注册:在Manifest中进行注册(注意在使用BroadcastReceiver继承与Receiver时不要忘了在ma...
  • u014131921
  • u014131921
  • 2016-01-19 21:56:24
  • 1305
收藏助手
不良信息举报
您举报文章:BroadcastReceiver的两种注册方式和使用
举报原因:
原因补充:

(最多只允许输入30个字)