Mars视频笔记——广播机制2
1 注册BroadcastReceiver的方法
BroadcastReceiver用于监听被广播的事件(Intent)
2种注册方法
(1)在应用程序代码中注册
注册BroadcastReciver:
registerReceiver(receiver,filter);
取消注册:
unregisterReceiver(receiver);
如果一个BroadcastReceiver用于更新UI,那么通常用代码方式
在Activity启动时注册BroadcastReceiver,在Activity不可见后取消注册
eg:
//生成一个BroadcastReceiver对象
smsReceiver = new SMSReceiver();//比如
//生成一个IntentFilter对象
IntentFilter filter = new IntentFilter();
//为filter添加一个Action
filter.addAction(android.provider.Telphony.SMS_RECEIVED);
//注册 (同理 解除绑定Activity.this.unregisterReceiver(smsReceiver);)
Activity.this.registerReceiver(smsReceiver,filter);
在Receiver类的onReceive方法中
通过Bundle bundle=intent.getExtras()得到intent中的数据
Object[] myOBJpdus=(Object[])bundle.get("pdus");
Bundle对象的一个属性pudus
SmsMessage[] message=new SmsMessage(myOBJpdus.length);
创建SmsMessage数组
通过for循环得到短消息内容
for(int i=0;i<myOBJpdus.length;i++){
message[i]=SmsMessage.createFromPdu((byte[])myOBJpuds[i]);
System.out.println(message[i].getDisplayMessageBody());
调用SmsMessage的getDisplayMessageBody()方法得到最终内容
}
(2)在AndroidManifest.xml中注册
注意 该方法注册时 即使应用程序已经关闭 仍保持活动状态 继续监听广播
<receiver android:name="类">
<intent-filter>
<action ....../>
</intent-filter>
</receiver>
2 Android内置的BroadcastActions
ACTION_CAMERA_BUTTON
ACTION_BATTERY_LOW
ACTION_DATE_CHANGED
ACTION_POWER_CONNECTED
ACTION_REBOOT
ACTION_SCREEN_ON
SDK中的Intent部分中的BroadcastAction
******
在DDMS中的EmulatorControl中可以模拟发送短信等其他事项
下一篇: Mars视频笔记——广播机制
推荐阅读
-
windows server 2012 r2打造工作站链接 和 RTSS画面防止撕裂方法(包括笔记本独显撕裂,视频撕裂等)
-
tensorflow2.x学习笔记十九:tensorflow中的自动微分机制
-
第一行代码读书笔记 5 -- 广播机制
-
第2章- IPC 机制读书笔记
-
OpenCV2学习笔记之视频流读取与处理
-
Mars视频笔记——广播机制2
-
Mars视频笔记——广播机制
-
[读书笔记]1_初探nginx架构_2_事件处理机制何来高并发
-
JVM内存分配机制与回收策略选择-JVM学习笔记(2)
-
windows server 2012 r2打造工作站链接 和 RTSS画面防止撕裂方法(包括笔记本独显撕裂,视频撕裂等)