Broadcast广播的使用

发送广播

//指定广播目标的 action (注:指定了此 action 的 receiver 会接收此广播),


//字符串com.webabcd.service.msg为这个广播的标识,要接收这个广播必须注册这个标识。


Intent intent = new Intent ( "com.webabcd.service.msg" );

//需要传递的参数
intent .putExtra ( "msg" , msg );

//发送广播
this . sendBroadcast ( intent );

接收广播

1.XML注册

注册用户定义广播

<!-- .LifeformDetectedBroadcastReceiver为LifeformDetectedBroadcastReceiver类继承BroadcastReceiver,实现onReceive处理接收广播 -->


<receiver
android:name = ”.LifeformDetectedBroadcastReceiver”
>

<intent-filter>
<!-- 上面定义的广播标识 -->    
<action
android:name = ”com.webabcd.service.msg”
/>
   

</intent-filter>

</receiver>

注册系统广播

<!-- 

   注册一个 BroadcastReceiver(广播接收)

   其 intent-filter 为 android.intent.action.BOOT_COMPLETED(用于接收系统启动完毕的 Broadcast,系统自动广播)

   .MyBootReceiver 为MyBootReceiver类继承BroadcastReceiver,实现onReceive处理接收广播

 -->




<receiver
android:name
= ".MyBootReceiver"
>
 

<intent-filter>    
<action
android:name = "android.intent.action.BOOT_COMPLETED"
/>
</intent-filter>

</receiver>

<!--

添加接受系统启动完毕的 Broadcast 的权限

-->


<uses-permission
android:name = "android.permission.RECEIVE_BOOT_COMPLETED"
/>

2.类中注册

// 实例化自定义的 BroadcastReceiver,用于处理接收到的广播信息


receiver
= new UpdateReceiver ();

IntentFilter filter = new IntentFilter ();

// 为 BroadcastReceiver 指定 action ,使之用于接收同 action 的广播

//字符串与发送广播的标识一样

filter
. addAction ( "com.webabcd.service.msg" );

// 以编程方式注册 BroadcastReceiver

// 一般在Activity OnStart 时注册,在 OnStop 时取消注册

this . registerReceiver ( receiver , filter );

//取消广播

// this.unregisterReceiver(receiver);

接收广播UpdateReceiver的实现

// 实现一个 BroadcastReceiver,用于接收指定的 Broadcast


public class UpdateReceiver extends BroadcastReceiver
{
//重写接收方法
public void onReceive ( Context context , Intent intent )
{    
//得到广播消息
msg = intent . getStringExtra ( "msg" );

txtMsg
. append ( msg + "/n" );

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值