android 广播的使用与开发

1.注册和使用

第一种方式 :静态实现----------需要注意的是,静态方法,即使在应用关闭的情况下,系统也会去调用。

public class MyBroadcastReceiver extends BroadcastReceiver { 

    // action 名称

    String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED" ; 

    public void onReceive(Context context, Intent intent) { 

       if (intent.getAction().equals( SMS_RECEIVED )) {

           // 相关处理 : 地域变换、电量不足、来电来信;

       }

    }

}

系统注册:在 AndroidManifest.xml 中注册

< receiver android:name = ".MyBroadcastReceiver" >

           < intent-filter android:priority = "1000" >             

< action android:name = " android.provider.Telephony.SMS_RECEIVED" />

           </ intent-filter >

 </ receiver > 
当然了需要权限 : 

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

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

 

 

第二种方式:动态代码实现 

// 广播接收者 - 广播的接收

private BroadcastReceiver myBroadcastReceiver = new BroadcastReceiver() { 

       @Override

       public void onReceive(Context context, Intent intent) {

           // 相关处理,如收短信,监听电量变化信息
 }

 };
*** registerReceiver(BroadcastReceiver receiver, IntentFilter filter)
***registerReceiver(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler)


2.使用环境

1.同一app内部的同一组件内的消息通信(单个或多个线程之间);


2.同一app内部的不同组件之间的消息通信(单个进程);


3.同一app具有多个进程的不同组件之间的消息通信;


4.不同app之间的组件之间消息通信;


5.Android系统在特定情况下与App之间的消息通信。

3.广播的分类

1.Normal Broadcast:普通广播
sendBroadcast(intent)/
sendBroadcast(intent, receiverPermission)/
sendBroadcastAsUser(intent, userHandler)/
sendBroadcastAsUser(intent, userHandler,receiverPermission)。

2.System Broadcast: 系统广播


3.Ordered broadcast:有序广播
sendOrderedBroadcast(intent, receiverPermission, ...)

4.Sticky Broadcast:粘性广播(在 android 5.0/api 21中deprecated,不再推荐使用,相应的还有粘性有序广播,同样已经deprecated)


5.Local Broadcast:App应用内广播


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值