Otto使用记录

来源:互联网 发布:网络男神 毒药 编辑:程序博客网 时间:2024/06/15 04:07

Otto也是事件总线 EventBus模式的一个框架,所以和EventBus使用方法基本类似

1。导包(http://github.com/square/otto)

  compile 'com.squareup:otto:+'

2。定义类javabean的事件对象

package com.louisgeek.louisotto;/** * Created by louisgeek on 2016/4/3. */public class MyEvent {    private  String text;    public MyEvent(String text) {        this.text = text;    }    public String getText() {        return text;    }}

3。区别EventBus,自己写单例OttoBus

package com.louisgeek.louisotto;import com.squareup.otto.Bus;/** * Created by louisgeek on 2016/4/3. */public class OttoBus {    private static final Bus BUS = new Bus();    public static Bus getInstance() {        return BUS;    }}

4。在接收数据页面,如fragment中生命周期中注册和取消注册

  @Override    public void onCreate(Bundle savedInstanceState) {     OttoBus.getInstance().register(this);    } @Override    public void onDestroy() {        super.onDestroy();        OttoBus.getInstance().unregister(this);    }

5.订阅者方法

   @Subscribe    public  void  onGetSend(MyEvent myEvent){        Toast.makeText(getActivity(),"fragment提示:"+myEvent.getText(),Toast.LENGTH_SHORT).show();    }

6。在maintay 写生产者方法,区别EventBus,需要写@Produce方法

    @Produce    public MyEvent setupEve() {        return new MyEvent(msg);    }

发送

    findViewById(R.id.id_btn_send).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                OttoBus.getInstance().post(setupEve());            }        });

这里写图片描述

demo下载:http://download.csdn.net/detail/richiezhu/9480133

0 0