1.广播定义在一个单独的文件中

源码:

  1. public class MessageReceiver extends BroadcastReceiver{
  2. @Override
  3. public void onReceive(Context context, Intent intent) {
  4. // TODO Auto-generated method stub
  5. if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
  6. }
  7. }
  8. }
public class MessageReceiver extends BroadcastReceiver{

	@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){ }
}
}

在Manifest中注册:

  1. <receiver android:name=".MessageReceiver">
  2. <intent-filter>
  3. <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
  4. </intent-filter>
  5. </receiver>
<receiver android:name=".MessageReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>

使用代码注册:

  1. //生成广播处理
  2. MessageReceiver  smsBroadCastReceiver = new MessageReceiver ();
  3. //实例化过滤器并设置要过滤的广播
  4. IntentFilter intentFilter = new IntentFilter();
  5. intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
  6. //注册广播
  7. this.registerReceiver(smsBroadCastReceiver, intentFilter);
//生成广播处理
MessageReceiver smsBroadCastReceiver = new MessageReceiver ();
//实例化过滤器并设置要过滤的广播
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED"); //注册广播
this.registerReceiver(smsBroadCastReceiver, intentFilter);

注销广播:

  1. unregisterReceiver(smsBroadCastReceiver);
unregisterReceiver(smsBroadCastReceiver);

2.广播是内部类

  1. public class SettingForSMS extends PreferenceActivity{
  2. @Override
  3. public void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. addPreferencesFromResource(R.layout.sms_setting);
  6. }
  7. public static class MessageChangeReceiver extends BroadcastReceiver {
  8. @Override
  9. public void onReceive(Context context, Intent intent) {
  10. // TODO Auto-generated method stub
  11. Log.i(tag, "onReceive");
  12. }
  13. }
  14. }
public class SettingForSMS extends PreferenceActivity{

	@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.layout.sms_setting);
} public static class MessageChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.i(tag, "onReceive");
}
}
}

注意定义的过程中必须声明为static,不然会找不到

在Manifest中注册:

  1. <receiver android:name=".SettingForSMS$MessageChangeReceiver">
  2. <intent-filter>
  3. <action android:name="com.ginwave.message_changed"/>
  4. </intent-filter>
  5. </receiver>
<receiver android:name=".SettingForSMS$MessageChangeReceiver">
<intent-filter>
<action android:name="com.ginwave.message_changed"/>
</intent-filter>
</receiver>

注意内部类使用$符号而不是.,使用.会出现类找不到异常

在程序内注册,register是放在onCreate中,unregister是放在onDestroy中。

  1. smsBroadCastReceiver = new MessageChangeReceiver ();
  2. //实例化过滤器并设置要过滤的广播
  3. IntentFilter intentFilter = new IntentFilter();
  4. intentFilter.addAction("com.ginwave.message_changed");
  5. //注册广播
  6. this.registerReceiver(smsBroadCastReceiver, intentFilter);
smsBroadCastReceiver = new MessageChangeReceiver ();
//实例化过滤器并设置要过滤的广播
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.ginwave.message_changed"); //注册广播
this.registerReceiver(smsBroadCastReceiver, intentFilter);
  1. unregisterReceiver(smsBroadCastReceiver);
unregisterReceiver(smsBroadCastReceiver);

希望以后使用的时候方便点~~

android广播(内部类)使用的更多相关文章

  1. Android随笔之——Android广播机制Broadcast详解

    在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理.这个广播跟我们传统意义中的电台广播有些相似之处.之所以叫做广播,就 ...

  2. Android广播机制——初体验

    写在前面的话 文章为笔者自己理解 . -如有错误,欢迎指正- <第一行代码>读书笔记 写于2017年10月16日17:00:40 (一). 安卓广播的分类 a.标准广播 标准广播发出以后, ...

  3. Android广播机制的深入学习

    部分内容转载自http://www.cnblogs.com/lwbqqyumidi/p/4168017.html 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者 ...

  4. Android总结篇系列:Android广播机制

    1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通 ...

  5. Android广播机制概述

    1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通 ...

  6. Android广播机制:Broadcast

    转载:Android总结篇系列:Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广 ...

  7. Android(java)学习笔记172:BroadcastReceiver之 Android广播机制

    Android广播机制 android系统中有各式各样的广播,各种广播在Android系统中运行,当"系统/应用"程序运行时便会向Android注册各种广播.Android接收到广 ...

  8. Android广播机制(转)

    1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通 ...

  9. Android广播的发送与接收

    Android广播的发送与接收 效果图 广播发送 广播分为有序广播和无序广播 有序广播与无序广播的区别 无序广播:只要是广播接收者指定了接收的事件类型,就可以接收到发送出来的广播消息.不能修改消息. ...

  10. Android广播机制

    原文出处: Android总结篇系列:Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的 ...

随机推荐

  1. Intel x86_64 Architecture Background 2

    这里是在学习Intel x86_64体系架构时学习到的一些概念,记录下来以供日后参考.如果有错的地方,欢迎指正! CPU上下文切换(context switch): 这个概念第一次听到对我来说是完全陌 ...

  2. JDK1.7 HashMap 导致循环链表

    转载自:疫苗:JAVA HASHMAP的死循环 在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race C ...

  3. WinForm 简易仿360界面控件

    因为经常要做一些1.2千行的小工具,WinForm自带的TabCtrl又不美观,所以想做成360的样子,在网上找来找去,都只有散乱的代码,没有可以通用的结构,于是自己写了一个简易的通用控件. 控件主要 ...

  4. linux下expect环境安装以及简单脚本测试

    expect是交互性很强的脚本语言,可以帮助运维人员实现批量管理成千上百台服务器操作,是一款很实用的批量部署工具!expect依赖于tcl,而linux系统里一般不自带安装tcl,所以需要手动安装 下 ...

  5. linux-文件流4种读取方式

    第二种方式 第三种 第四种: 小括号在管道符的右边开辟了两个子进程 大括号在管道符的右边开辟了一个子进程, export 用来导出子进程的 num 还可以借助外部文件进行 七步扩展:

  6. js异步回调

    简单理解:js是单线程的,Ajax请求远程数据.IO等会很耗时,引起堵塞可能会引起反应时间太长页面失去反应. 回调:A函数作为一个参数传给B函数,执行完B后再执行A: 同步回调: function A ...

  7. “数学口袋精灵”App的第三个Sprint计划(总结与团队感悟)----开发日记

    第三阶段Sprint完成情况: 我们的"数学口袋精灵"App已经完成了,该app能随机产生多种形式的算式,比如带括号的,分数四则运算,混合运算,阶乘等,通过游戏形式让用户乐在其中. ...

  8. Maven+SSM整合.doc

    Maven + SSM整合 1开发环境搭建 1.1Eclipse4.7(Oxygen) + Tomcat8 + Maven3.5.2 2Maven Web项目创建 2.1新建maven项目 2.2 选 ...

  9. [微软官网]windows server 内存限制

    Memory Limits for Windows and Windows Server Releases https://docs.microsoft.com/zh-cn/windows/deskt ...

  10. Python表达式与运算符

    表达式与运算符 Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符 成员运算符 身份运算符 运算符优先级 算术运算符 运算符 描述 + 加 - 两 ...