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 或者直接扫码

  • 相关阅读:
    [ 测试管理 ] 如何描述缺陷报告?
    [ 测试思维 ] 启发式测试策略模型(HTSM)
    Linux tcpdump命令使用方法
    Linux创建SSH信任关系
    [ Shell入门教程 ] 通配符与基础正则表达式、扩展正则表达式
    [ Shell入门教程 ] shell字符串基本操作
    Shell多进程获取未使用IP方法
    [ Shell入门教程 ] 字符串空格和文件空行删除
    [ Shell入门教程 ] Shell编程中数值计算方法实例
    [ Shell入门教程 ] echo和printf使用实例
  • 原文地址:https://www.cnblogs.com/songjianzaina/p/10392017.html
Copyright © 2011-2022 走看看