通过一个事件
要在 Android Studio 中使用 Otto Event Bus,你必须在 modules gradle 文件中插入以下语句:
dependencies {
compile 'com.squareup:otto:1.3.8'
}
我们想要传递的事件是一个简单的 Java 对象:
public class DatabaseContentChangedEvent {
public String message;
public DatabaseContentChangedEvent(String message) {
this.message = message;
}
}
我们需要一个总线来发送事件。这通常是单例:
import com.squareup.otto.Bus;
public final class BusProvider {
private static final Bus mBus = new Bus();
public static Bus getInstance() {
return mBus;
}
private BusProvider() {
}
}
要发送一个事件,我们只需要我们的 BusProvider 和它的 post
方法。这里我们发送一个事件,如果 AsyncTask 的动作完成:
public abstract class ContentChangingTask extends AsyncTask<Object, Void, Void> {
...
@Override
protected void onPostExecute(Void param) {
BusProvider.getInstance().post(
new DatabaseContentChangedEvent("Content changed")
);
}
}