美文网首页
Otto的使用

Otto的使用

作者: 码圣 | 来源:发表于2016-09-09 16:03 被阅读68次

Otto是一个用来进行组件之间通信的框架

GitHub地址
使用方式


Otto主要概念就是发布事件和接收事件,如果要接收事件时,在方法前加一个注解@Subscribe,方法名可以自定义。下面用一个例子来说明,通过MainActivity打开一个OtherActivity,然后OtherActivity发送数据到MainActivity。


Otto通过bus这个类进行事件的发送,要收事件的类必须进行注册,发送事件的类可以注册也可以不注册。
首先把Bus做成一个单例:

public class BusManager {
    private static Bus mBus;
    public static Bus getInstance(){
        if (mBus == null) {
            mBus=new Bus();
        }
        return mBus;
    }

}

这是MainActivity的代码,主要是注册和接收事件:

public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        BusManager.getInstance().register(this);
    }


    @Subscribe
    public void receive(String s) {
        Log.d("alan", "收到事件");
        Log.d("alan", "s--->" + s);

    }

    public void click(View v) {
        startActivity(new Intent(this, OtherActivity.class));
    }

    @Override
    protected void onDestroy() {
        BusManager.getInstance().unregister(this);
        super.onDestroy();
    }
}

在OtherActivity里点击按钮后就发送事件:

public class OtherActivity extends AppCompatActivity {

    private Bus bus;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.other_layout);
        bus = BusManager.getInstance();

    }
    //点击按钮
    public void btn(View v){

        bus.post("a string");
    }
}

otto主要通过订阅者的接收参数来选择发送事件,如果两个订阅者的参数一样,那么这两个订阅者都会接收到事件,所以,在写订阅者方法的参数的时候,最好再包一层。


Otto就类似Android中的接口,只是写起来更方便了。

相关文章

  • Otto的使用

    Otto是一个用来进行组件之间通信的框架 GitHub地址使用方式 Otto主要概念就是发布事件和接收事件,如果要...

  • Otto快速使用

    引入 otto 1、创建AppBus单例,提高效率 2、创建数据类(因为otto没有EventBus的tag标记功...

  • Otto的简单使用

    第一次写简书,只为了把平时用到的知识记录保存下来,同时也希望能对又需要的学者有帮助。 今天刚好用了大名鼎鼎的Ott...

  • Otto源码分析

    Otto是Square公司推出的事件总线库,目的是当你应用里的不同部分需要进行通讯时进行解耦。 使用方法 Otto...

  • [Android组件解读] 被square公司抛弃的Otto框架

    最近讲的都是square出品的组件,今天还是继续讲解Square旗下的Otto框架 引用otto官网说的 Otto...

  • otto

    otto是在安卓中组件之间用来通信的库,优点是可以降低多个组件之间的通信的耦合度,也就是解耦.比如说:界面A要跳转...

  • Otto框架

    一、Otto介绍 OTTO是Square推出的库,地址:https://github.com/square/ott...

  • 用RxJava实现事件总线(Event Bus)

    目前大多数开发者使用EventBus或者Otto作为事件总线通信库,对于RxJava使用者来说,RxJava也可以...

  • 源码分析--AndroidEventBus(1--registe

    Android事件库中使用者最多的应该是EventBus 和 Otto了,而选择AndroidEventBus的原...

  • Android Rxbus 使用(RxJava响应事件处理)

    RxBus : 通过RxJava实现Rxbus。 目前大多数开发者使用EventBus或者Otto作为事件总线通信...

网友评论

      本文标题:Otto的使用

      本文链接:https://www.haomeiwen.com/subject/xrbeettx.html