博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 广播(内部类)
阅读量:7049 次
发布时间:2019-06-28

本文共 1785 字,大约阅读时间需要 5 分钟。

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

源码:

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中注册:

使用代码注册:

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

注销广播:

unregisterReceiver(smsBroadCastReceiver);

2.广播是内部类

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中注册:

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

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

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

 注意:如果使用getResource()方法,要使用context.getResource()

转载地址:http://vodol.baihongyu.com/

你可能感兴趣的文章
hdoj-3371-Connect the Cities【最小生成树】
查看>>
SSL和SSH的差别
查看>>
使用AutoMapper实现Dto和Model的自由转换(中)
查看>>
用异或操作实现的交换函数用以实现数组逆置中须要注意的问题
查看>>
Tomcat的URL中文乱码解决以及传输优化
查看>>
【POI】修改已存在的xls,新添一列后,再保存本文件
查看>>
mac nginx 安装教程
查看>>
小贝_mysql 触发器使用
查看>>
jstree中json data 的生成
查看>>
Win7 64bit 安装VisualSVN出现报错:Servic 'VisualSVN Server' failed to start.解决的方法...
查看>>
论-多租户技术
查看>>
解析json方式之net.sf.json
查看>>
java中集合格式及json格式的特点和转换
查看>>
Java下用Jackson进行JSON序列化和反序列化(转)
查看>>
input_shape { dim: 1 dim: 3 dim: 224 dim: 224 }
查看>>
15.extjs tabPanel的用法
查看>>
NetFlow是一种数据交换方式,提供网络流量的会话级视图,记录下每个TCP/IP事务的信息...
查看>>
Redis命令汇总
查看>>
Python shuffle() 函数
查看>>
Linux系列教程(七)——Linux常用命令之帮助和用户管理命令
查看>>