Android之BroadcastReceiver的使用

一、目标

  1、了解什么是BroadcastReceiver

  2、掌握BroadcastReceiver的使用

  3、了解BroadcastReceiver的生命周期

二、什么是BroadcastReceiver

  1、Broadcast(广播)是一种广泛运用在应用程序之间传播消息的机制

    a、系统消息

      a):Android系统发出的,电池不足、来电信息等

    b、自定义消息

      a):第三方应用发出的广播消息

  2、什么是BroadcastReceiver

    a、广播消息本质上就是一个Intent对象

    b、Intent是一对一的通信,广播消息是一对多的通信

    c、BroadcastReceiver用于接受并处理广播消息

    d、BroadcastReceiver没有用户界面

      I、借助其他方式和用户交互,例如:启动Activity、使用Notification等

三、广播消息的处理流程

  1、广播消息的处理分为三个环节

    a、消息发送

    b、BroadcastReceiver注册

    c、消息处理

四、处理系统广播消息

  1、系统广播都被定义为android.content.Intent中的Action常量

  2、利用BroadcastReceiver捕获系统广播

    I、ACTION_BOOT_COMPLETED可以轻松实现开机后台程序自动运行

  3、系统广播 

      a、android.provider.Telephony.SMS_RECEIVED 短信息
      b、android.intent.action.NEW_OUTGOING_CALL 外拨电话
      c、android.intent.action.MEDIA_UNMOUNTED SD卡未挂载
      d、android.intent.action.MEDIA_UNMOUNTED SD卡未挂载
      e、android.intent.action.MEDIA_MOUNTED SD卡挂载
      f、android.intent.action.MEDIA_REMOVED SD卡拔出

  4、在AndroidManifest.xml文件中增加应用权限声明

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

  5、继承BroadcastReceiver并实现onReceiver方法

public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent){
    ...
  }
}

五、深入消息处理

    1、无序广播:sentBroadcast(),效率高,但是消息处理之间没有关联、

    2、有序广播sendOrderBroadcast(),可以传递处理数据

  3、持续广播:sendStickyBroadcast()发送的广播一直存在

六、BroadcastReceiver的生命周期

  1、BroadcastReceiver的onReceiver()方法执行完后,其实例就会被销毁。

  2、如果onReceiver()方法在10秒内没有执行完,Android会认为程序无响应。

    a、–所以BroadcastReceiver不能做比较耗时的操作,否则会弹出“Application No Resource”的对话框

 

转载于:https://www.cnblogs.com/zhangmawang/p/8086852.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值