otto基于Guava项目的Android支持库,如果你在Android程序开发的过程中想要不同的组件之间进行有效的通信可以使用这个库。通过otto库可以降低程序之间的耦合性(拷贝)
先对0tto进行初始化操作
import com.squareup.otto.Bus;
/**
* 初始化AppBus的工具类
*
* @author Administrator
*
*/
public class AppBus extends Bus {
private static AppBus bus;
public static AppBus getInstance() {
if (bus == null) {
bus = new AppBus();
}
return bus;
}
}
----------------------------------------------
/**
* 传递数据类型的工具类
*
* @author Administrator
*
*/
public class BusEventData {
public String content;
public int index;
public BusEventData(String content) {
this.content = content;
}
public BusEventData(int index) {
this.index = index;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}
在需要发送消息的时候调用:(在发送消息的时候需要另外开启一个线程)
AppBus.getInstance().post(new BusEventData(index));
在需要接收的地方需要这两个方法:
@Subscribe
public void setContent(BusEventData data) {
//data可以获取到发送过来的参数
}
@Subscribe
public void onDataChange(String sss) {
}
在合适的地方对otto注册与注销
AppBus.getInstance().register(this);
AppBus.getInstance().unregister(this);