zoukankan      html  css  js  c++  java
  • EventBus的基本使用步骤

    为什么要使用EventBus

    当我们进行项目开发的时候,往往是需要应用程序的各组件间进行通信,比如在子线程中进行请求数据,当数据请求完毕后通过Handler或者是广播通知UI,

    通常两个Activity或者Fragment之家可以通过Listener进行通信等等。但当我们的项目越来越复杂,使用Intent、Handler、Broadcast进行模块间通信时,代码量大,而且高度耦合。而EventBus的出现就是为了简化各组件间的通信,让我们的代码书写变得简单,有效的分离事件发送方和接收方

    EventBus的基本使用步骤:

    第一步:添加依赖

    compile 'org.greenrobot:eventbus:3.0.0'

    第二步:定义消息事件类

    public class MessageEvent{
    private String message;
    public  MessageEvent(String message){
        this.message=message;
    }
    
    public String getMessage() {
        return message;
    }
    
    public void setMessage(String message) {
        this.message = message;
    }
    }

    第三步:注册和解除注册 (在FirstActivity的onCreate()方法和onDestory()方法里,进行注册EventBus和解除注册。该Activity用于接收事件)

    public class FirstActivity extends AppCompatActivity {
    
    
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.first_activity);
       //注册
    EventBus.getDefault().register(this);
    
    }
    
    
    
        //接收消息
    @Subscribe(threadMode = ThreadMode.MAIN)
    public void Event(MessageEvent messageEvent) {
    mText.setText(messageEvent.getMessage());
    }
    
    @Override
    protected void onDestroy() {
    super.onDestroy();
            //解除注册
    if(EventBus.getDefault().isRegistered(this)) {
    EventBus.getDefault().unregister(this);
    }
    }
    
    }

    第四步:发送消息事件 (在SecondActivity里去进行事件的发送)。

    public class SecondActivity extends AppCompatActivity {
    private Button mButton2;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second_activity);
    mButton2=(Button) findViewById(R.id.btn2);
    
    mButton2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    //发送消息
    EventBus.getDefault().post(new MessageEvent("欢迎大家浏览我写的博客"));
    finish();
    }
    });
    }
    
    
    } 

    最后

    附上 EventBus Github地址

    关于我

    私人博客

    技术微信公众号:infree6 或者直接扫码

  • 相关阅读:
    蒟蒻の搜索学习总结
    蒟蒻の红黑树总结
    数据结构与算法
    linux常用命令
    Linux防火墙Firewall和Iptables的使用
    Spring Boot 自定义Intercepter
    Spring Boot 自定义Filter
    SpringBoot 全局异常配置
    SpringBoot设置支持跨域请求
    springboot整合shiro安全框架
  • 原文地址:https://www.cnblogs.com/songjianzaina/p/10392017.html
Copyright © 2011-2022 走看看