• Android 应用内广播 LocalBroadcastManager


    通常我们在使用Android广播的时候都会直接将广播注册到系统的AMS当中,由于AMS任务繁忙,一般可能不会立即能处理到我们发出的广播,如果我们使用广播是在应用内的单个进程中使用,则完全可以采用LocalBroadcastManager来处理。LocalBroadcastManager采用的是Handler的消息机制来处理的广播,而注册到系统中的是通过Binder机制实现的,速度是应用内广播要快很多。不过由于Handler的消息机制是为了同一个进程的多线程间进行通信的,因而跨进程时无法使用应用内广播。

    在使用上和普通的Broadcast类似,主要分5步:

    // 1. 自定义广播接收者
    public class LocalReceiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
    ...
    }
    }
    LocalReceiver localReceiver = new LocalReceiver();

    // 2. 注册广播
    LocalBroadcastManager.getInstance(context)
    .registerReceiver(localReceiver, new IntentFilter(“test”));
    // 4. 发送广播
    LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent("test"));
    // 5. 取消注册广播
    LocalBroadcastManager.getInstance(context).unregisterReceiver(localReceiver);

    和普通的广播一样,在注册广播的时候将该广播接受者注册到LocalBroadcatManager中。当发生时也是调用LocalBroadcastManager的sendBroadcast进行发生。同样在不使用时记得取消广播注册。

    消息处理时都在主线程中处理。

  • 相关阅读:
    机器学习十四--深度学习-卷积
    机器学习十三——垃圾邮件分类2
    机器学习十二----朴素贝叶斯-垃圾邮件分类
    机器学习十一 ——分类与监督学习,朴素贝叶斯分类算法
    机器学习九----主成分分析
    机器学习八——特征选择
    基于D3.js 绘制一个折柱混合图
    一个轮播图
    贪吃蛇
    数组中哪些方法是响应式的
  • 原文地址:https://www.cnblogs.com/yxfcnbg/p/11429764.html
Copyright © 2020-2023  润新知