【EventBus】EventBus 使用示例 ( 最简单的 EventBus 示例 )

简介: 【EventBus】EventBus 使用示例 ( 最简单的 EventBus 示例 )

文章目录

一、导入依赖

二、注册 EventBus

三、发送 EventBus 事件

四、完整代码示例






一、导入依赖


在 Module 下的 build.gradle 中导入 EventBus 依赖 ;


implementation 'org.greenrobot:eventbus:3.2.0'






二、注册 EventBus


在 onCreate 注册 EventBus ;


 

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 首先注册订阅 EventBus
        EventBus.getDefault().register(this);
    }


在 onDestory 中 取消注册 EventBus ;


@Override
    protected void onDestroy() {
        super.onDestroy();
        // 取消注册
        EventBus.getDefault().unregister(this);
    }





三、发送 EventBus 事件


点击按钮 , 通过 EventBus 发送消息 ;


   

textView = findViewById(R.id.textView);
        // 设置点击事件, 点击后发送消息
        textView.setOnClickListener((View view)->{
            EventBus.getDefault().post("Hello EventBus !");
        });





四、完整代码示例


package com.eventbus_demo;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
public class MainActivity extends AppCompatActivity {
    private TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textView);
        // 设置点击事件, 点击后发送消息
        textView.setOnClickListener((View view)->{
            EventBus.getDefault().post("Hello EventBus !");
        });
        // 首先注册订阅 EventBus
        EventBus.getDefault().register(this);
    }
    /**
     * 使用 @Subscribe 注解修饰处理消息的方法
     *      该方法必须是 public void 修饰的
     *      只有一个参数 , 参数类型随意
     *      调用 EventBus.getDefault().post 即可发送消息到该方法进行处理
     * @param msg
     */
    @Subscribe
    public void onMessgeEvent(String msg){
        textView.setText(msg);
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 取消注册
        EventBus.getDefault().unregister(this);
    }
}


运行效果 : 点击按钮后发送消息 , 处理消息的 onMessgeEvent 方法中 , 接收到消息 , 将按钮文本变为 “Hello EventBus !” ;


image.png



目录
相关文章
|
6月前
|
Java Android开发
EventBus简单介绍
EventBus简单介绍
52 0
DHL
|
Java API Android开发
EventBus3.1用法详解
EventBus是Android和Java的发布/订阅事件总线。从EventBus3.1开始支持普通Java(非android)项目。GitHub的地址
DHL
247 0
EventBus3.1用法详解
|
存储 缓存 调度
EventBus源码解析
EventBus源码解析
744 0
EventBus源码解析
EventBus简单使用
EventBus简单使用
182 0
EventBus实现组件间异步
最近新换了工作,刚来比较轻松,所以想自己写几个小工具提升下自己的效率。在开发过程中发现组件的一些通讯问题,如果采用异步的方式,效率能得到很大提升,所以决定使用到EventBus(消息总线)技术,达到异步事件处理的目的。
【EventBus】EventBus 源码解析 ( 事件发送 | EventBus.post 方法 | EventBus.postSingleEvent 方法 )
【EventBus】EventBus 源码解析 ( 事件发送 | EventBus.post 方法 | EventBus.postSingleEvent 方法 )
172 0
|
搜索推荐
【EventBus】EventBus 源码解析 ( EventBus 构建 | EventBus 单例获取 | EventBus 构造函数 | EventBus 构建者 )
【EventBus】EventBus 源码解析 ( EventBus 构建 | EventBus 单例获取 | EventBus 构造函数 | EventBus 构建者 )
124 0
【EventBus】EventBus 源码解析 ( 取消订阅 )
【EventBus】EventBus 源码解析 ( 取消订阅 )
161 0
|
Android开发
【EventBus】EventBus 事件总线框架简介 ( EventBus 使用流程 )
【EventBus】EventBus 事件总线框架简介 ( EventBus 使用流程 )
297 0
【EventBus】EventBus 源码解析 ( 事件发送 | postToSubscription 方法 | EventBus 线程模式处理细节 )
【EventBus】EventBus 源码解析 ( 事件发送 | postToSubscription 方法 | EventBus 线程模式处理细节 )
134 0