zoukankan      html  css  js  c++  java
  • 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”的对话框

  • 相关阅读:
    练习JSON
    实现JSON+JDBC的简单操作(以显示对象为例)
    三层架构:表示层-业务逻辑层-数据访问层
    实现json的三个操作(训练JSON)
    实现邮箱验证 简化版
    复习注册表单html和jQuery
    监听器(测试在线人数的)第一种 HttpSessionBindingListener
    Django的中间件
    Django form表单
    Django
  • 原文地址:https://www.cnblogs.com/zhangmawang/p/8086852.html
Copyright © 2011-2022 走看看