android 之 广播相关
感谢:http://www.devdiv.com/home.php?mod=space&uid=14682&do=blog&id=3776
在android中,通过广播(broadcast)可以通知其他广播接受者某个事件发生了。比如电源强度,信号强度等。
Broadcast机制是基于一种注册方式的,Broadcast Receiver将其特征描述并注册在系统中。根据注册时机,可以分为两类,网上有人称之为静态注册和动态注册。
静态注册,就是Broadcast Receiver的相关信息写在配置文件中,系统会负责在相关事件发生的时候及时通知到该Broadcast Receiver。这种模式适合于这样的场景:某事件发生
-> 通知Broadcast -> 启动相关处理应用。比如,监听来电、邮件、短信之类的,都隶
属于这种模式。 这个方式实现如下:
(1)接收广播
Public class MyBroadcastReceiver extends BroadcastReceiver { Public void onReceive(Context context, Intene intent){ // TODO}
Intent it = new Intent(NEW_BROADCAST_FILTER); sendBroadcast(it);
<receiver android:name=”.MyBroadcastReceiver”> <intent-filter><action android:name= NEW_BROADCAST_FILTER /></intent-filter></receiver>
BroadcastReceiver mReceiver=new BroadcastReceiver(){Public void onReceive(Context context,Intent intent){ //收到Broadcast会跑到这里 }}
IntentFilter mfilter=new IntentFilter();mfilter.addAction(NEW_BROADCAST_FILTER);registerReceiver(mReceiver,mfilter);
unregisterReceiver(mReceiver);
<receiver android:name=".SmsReceiver"> <intent-filter android:priority="1999"> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter></receiver>