zoukankan      html  css  js  c++  java
  • EventBus学习

    EventBus是android 下高效的发布/订阅事件总线机制,可以代替传统的Intent,Handler,BroadCast 或者Fragment,Activity,Service,线程之间传递数据,是一种发布订阅设计模式(观察者模式)。

    如何使用呢?

    1. 在要接收的Activity注册订阅者,EventBus.getDefault().register(this), 发送的方式是EventBus.getDefault().post();

    2. 在要接收的Activity里面使用下面的方法中的一个或者多个接收事件:

    public void onEvent(Message msgEvent); // 该事件在哪个线程发出的,onEvent就会在这个线程中运行,发布和接收在同一个线程中。注意不能执行耗时操作,否则容易导致事件分发延迟。

    public void onEventMainThread(MesssageEvent mevent);

    无论事件在哪个线程中发出来,都会在UI线程中执行onEventMainThread,这个可以用来更新UI,也不能执行耗时操作

    public void onEventBackgroud:

    如果事件是在UI线程中发布的,会创建子线程执行,如果就是在子线程发布,就在该子线程中执行

    public void onEventAsync

    无论是在哪个线程中发布,都会创建子线程去执行

    3. 发布后,谁来执行呢?

    这里就是根据发布的参数和订阅者的参数去匹配的,只要参数一样,就去执行。

  • 相关阅读:
    CVE-2020-1938 Apache-Tomcat-Ajp 文件包含漏洞复现
    关于CVE-2020-0796
    如何伪造邮箱
    如何判断主机是否存在某系统漏洞
    DC3
    小记如何绕过受限的shell
    DC1
    1111. 有效括号的嵌套深度 看题两小时,做题10分钟系列,这是在考语文吧
    LeetCode 912. 排序数组
    LeetCode--算法,简单级别1
  • 原文地址:https://www.cnblogs.com/heavenStrone/p/5834024.html
Copyright © 2011-2022 走看看