通過一個事件
此示例描述使用 Otto 事件匯流排傳遞事件 。
要在 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")
);
}
}