• EventBus 最简易的使用方式


    呃,要跟上时代的步伐,所以来学习一下EventBus(话说好像现在学也已经算是跟不上了。。嘛。。不管了,一步一步往前追,应该还来得及吧)。

    转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50625105

    看了网上一些的关于eventBus的文章,上来就叽里呱啦一大堆总结啊,概述啊。。上个原理图啊什么的。。 这样写虽然好,但是总会给一些初学者打一些退堂鼓。看到那么复杂就不想看下去了。。 所以在自己学习的过程中,想写一些直观的,精简的,适合初学者的博客。

    现在开始吧

    关于EventBus是什么

    额。。因为笔者也是刚刚接触,所以暂时我们认为他是用来传递消息的东东(类似于handler啊 intent啊等等)。这样也比较好理解。 暂时撇开观察者模式不说,直接来看他的用法。

    首先将EventBus整合到我们自己的项目中

    1.在gradle里面,加入如下代码,这样即可在项目中使用EventBus

    
    dependencies {
        compile 'de.greenrobot:eventbus:2.4.0'
    }
    

    如何使用

    1. 在MainActivity的onCreate()周期注册EventBus。
    EventBus.getDefault().register(this);
    1. 在onDestroy()注销EventBus。
      @Override
        protected void onDestroy() {
            super.onDestroy();
            EventBus.getDefault().unregister(this);
        }

    这样便完成了一个EventBus的注册。现在,给Activity安上一个按钮,用这个按钮来发送消息,弹出一个Toast。

      @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mButton = (Button) findViewById(R.id.btn);
            mButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    EventBus.getDefault().post("hello eventBus");
                }
            });
            EventBus.getDefault().register(this);
        }

    此时,点击button,将会通过EventBus发送一条消息。然后来写一个onEventMainThread函数,去处理这个消息的接收。这个函数代表如果接收到消息,则运行在UI线程。里面去弹出一条Toast,为刚才发送的消息。

    public void onEventMainThread(String str) {
            Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
        }

    此时,点击按钮,效果如下:
    这里写图片描述

    具体的流程是: 按钮触发监听事件—->EventBus发送消息—->EventBus接收消息—->处理接收到的消息

    这样应该大家可以很直观的了解了EventBus的作用,这也算是第一课时的笔记吧~

    下一篇: EventBus的常用函数
    大家如果喜欢我的博客,记得关注我哦。

  • 相关阅读:
    安装openssl后yum不能使用的解决办法
    使用xShell 连接 docker 使用说明
    /usr/bin/ld: cannot find -lcrypto
    Mac包管理神器:Home-brew
    FinalShell远程连接工具推荐
    make编译出错 usr/bin/ld: /data/app/openssl/lib/libcrypto.a(ecs_asn1.o): relocation R_X86_64_PC32 against symbol `ECDSA_SIG_it' can not be used when making a shared object; recompile with -fPIC
    交叉编译环境搭建
    安装Gitlab
    Git的详细使用
    服务器里Centos 7安装KVM,并通过KVM安装Centos 7
  • 原文地址:https://www.cnblogs.com/muyuge/p/6333537.html
Copyright © 2020-2023  润新知