Android学习笔记 - 广播篇 (Broadcast)
2012-11-20 10:48
113 查看
1.Android的广播机制介绍
当Android系统接收到一个事件后(如电话响、收到短信),触发事件并能手广播
2.BroadcastReceiver的作用
对有注册广播接收的程序进行广播,通知其它感兴趣的程序
3.BroadcastReceiver的编写方法
1.在AndroidManifest.xml中注册事件:
[html]
view plaincopy
<receiver android:name=".TestReceiver">
<intent-filter>
<action android:name="android.intent.action.EDIT" />
</intent-filter>
</receiver>
2.创建一个类,继承于BroadcastReceiver,用于接收广播
[java]
view plaincopy
public class BCReceiver extends BroadcastReceiver{
public void BCReceiver(){
}
@Override
public void onReceive(Context context, Intent intent){
System.out.println("receive a broadcast");
}
}
3.编写一个类,用于发送广播(测试用)
[java]
view plaincopy
Intent intent = new Intent();
intent.setAction(Intent.ACTION_EDIT);
CPActivity.this.sendBoardcase(intent);
4.BroadcastReceiver的生命周期
在Android系统接收到一个广播时,会查找符合的广播程序
如果符合intent-filter的话,则会创建一个广播接收类
广播接收类在触发onReceive方法后,就会被销毁,下次重新创建
5.注册BroadcastReceiver的方法
BroadcastReceiver用于监听被广播的事件,为了达到这个目的,BroadcastReceiver必须进行注册,注册的方法:
1.在应用程序的代码当中进行注册
2.在AndroidManifest.xml当中进行注册(上节已介绍)
两者区别:注册在xml文件中的话,即使程序被关闭了,也会接收到广播
代码绑定广、解除绑定播接收方法:
[java]
view plaincopy
//代码绑定广播接收方法:
SmsReceiver smsReceiver = new SmsReceiver(); //创建监听类
IntentFilter filter = new IntentFilter(); //创建过滤器
filter.addAction("android.provider.Telephony.SMS_RECEIVED"); //向过滤器添加动作
BCActivity.this.registerReceiver(smsReceiver,filter); //注册广播
//代码解除绑定广播接收方法:
BCActivity.this.unregisiterReceiver(smsReceiver);
在模拟器中发送短消息:
DDMS - Emulator Control - SMS中,填写号码和内容,点击“Send”按钮
接收广播后的相关处理:
[java]
view plaincopy
public void onReceive(Context context, Intent intent){
Bundle bundle = intent.getExtras(); //接收Intent对象中的数据
Object[] obj = (Object[])bundle.get("pdus"); //
SmsMessage[] messages = new SmsMessage[obj.length]; //创建短消息类型数组
for(int i=0; i<obj.length; i++){
messages[i] = SmsMessage.createFromPdu((byte[]obj[i]); //获取一条短信
System.out.println(messages[i].getDisplayMessageBody()); //打印消息体
}
}
6.Android内置的BroadcastReceiver
在帮助文档中的Intent类页面中,找到常量中有“Broadcast Action”的相关ACTION
ACTION_CAMERA_BUTTON //照相按钮被点击
ACTION_BATTERY_LOW //电池低电
ACTION_DATE_CHANGED //
ACTION_POWER_CONNECTIED //连接USB充电
ACTION_REBO0OT //重启系统
ACTION_SCREEN_ON //屏幕被打开
分享到:
当Android系统接收到一个事件后(如电话响、收到短信),触发事件并能手广播
2.BroadcastReceiver的作用
对有注册广播接收的程序进行广播,通知其它感兴趣的程序
3.BroadcastReceiver的编写方法
1.在AndroidManifest.xml中注册事件:
[html]
view plaincopy
<receiver android:name=".TestReceiver">
<intent-filter>
<action android:name="android.intent.action.EDIT" />
</intent-filter>
</receiver>
2.创建一个类,继承于BroadcastReceiver,用于接收广播
[java]
view plaincopy
public class BCReceiver extends BroadcastReceiver{
public void BCReceiver(){
}
@Override
public void onReceive(Context context, Intent intent){
System.out.println("receive a broadcast");
}
}
3.编写一个类,用于发送广播(测试用)
[java]
view plaincopy
Intent intent = new Intent();
intent.setAction(Intent.ACTION_EDIT);
CPActivity.this.sendBoardcase(intent);
4.BroadcastReceiver的生命周期
在Android系统接收到一个广播时,会查找符合的广播程序
如果符合intent-filter的话,则会创建一个广播接收类
广播接收类在触发onReceive方法后,就会被销毁,下次重新创建
5.注册BroadcastReceiver的方法
BroadcastReceiver用于监听被广播的事件,为了达到这个目的,BroadcastReceiver必须进行注册,注册的方法:
1.在应用程序的代码当中进行注册
2.在AndroidManifest.xml当中进行注册(上节已介绍)
两者区别:注册在xml文件中的话,即使程序被关闭了,也会接收到广播
代码绑定广、解除绑定播接收方法:
[java]
view plaincopy
//代码绑定广播接收方法:
SmsReceiver smsReceiver = new SmsReceiver(); //创建监听类
IntentFilter filter = new IntentFilter(); //创建过滤器
filter.addAction("android.provider.Telephony.SMS_RECEIVED"); //向过滤器添加动作
BCActivity.this.registerReceiver(smsReceiver,filter); //注册广播
//代码解除绑定广播接收方法:
BCActivity.this.unregisiterReceiver(smsReceiver);
在模拟器中发送短消息:
DDMS - Emulator Control - SMS中,填写号码和内容,点击“Send”按钮
接收广播后的相关处理:
[java]
view plaincopy
public void onReceive(Context context, Intent intent){
Bundle bundle = intent.getExtras(); //接收Intent对象中的数据
Object[] obj = (Object[])bundle.get("pdus"); //
SmsMessage[] messages = new SmsMessage[obj.length]; //创建短消息类型数组
for(int i=0; i<obj.length; i++){
messages[i] = SmsMessage.createFromPdu((byte[]obj[i]); //获取一条短信
System.out.println(messages[i].getDisplayMessageBody()); //打印消息体
}
}
6.Android内置的BroadcastReceiver
在帮助文档中的Intent类页面中,找到常量中有“Broadcast Action”的相关ACTION
ACTION_CAMERA_BUTTON //照相按钮被点击
ACTION_BATTERY_LOW //电池低电
ACTION_DATE_CHANGED //
ACTION_POWER_CONNECTIED //连接USB充电
ACTION_REBO0OT //重启系统
ACTION_SCREEN_ON //屏幕被打开
分享到:
相关文章推荐
- Android学习笔记 - 广播篇 (Broadcast)
- Android学习笔记 - 广播篇 (Broadcast)
- Android学习笔记之Android组件之BroadcastReceiver(Android广播机制)
- Android学习笔记八:用Broadcast Receiver跨进程(跨app)通信
- Android学习笔记之广播意图及广播接收者MyBroadcastReceiver、Broadcast
- android学习笔记之BroadcastReceiver应用详解
- Android学习笔记_19_广播接收者 BroadcastReceiver及其应用_窃听短信_拦截外拨电话
- Android学习笔记(五)广播(Broadcast)
- Android学习笔记(十)BroadcastReceiver初体验
- Android学习笔记 - Broadcast
- Android学习笔记之二十 BroadcastReceiver
- Android学习笔记(二)--------浅谈Broadcast 广播
- Android学习笔记(十二)BroadcastReceiver的有序广播和优先级
- Android学习笔记--Broadcast, BroadcastReceiver(广播)
- android学习笔记(三)四大组件Broadcast Receiver详解
- Android学习笔记14——Broadcast机制(一)
- android学习笔记(三)四大组件Broadcast Receiver详解
- Android学习笔记 - Broadcast
- Android学习笔记之Android组件之BroadcastReceiver(Android广播机制)
- Android学习笔记15——Broadcast机制(二)