我正在使用 Otto 的改造。我的问题是如何订阅同一个片段(或活动)中的多个事件。根据官方文档 “该方法应该只接受一个参数,其类型将是您希望订阅的事件。” :
我做不到@Subscribe public void getAllData(Event1 event1, Event2 event2);
。_
我也不能订阅两次,比如:在同一个片段(或活动)类中@Subscribe public void getDataOne(Event1 event1);
。@Subscribe public void getDataTwo(Event2 event2);
在我的 Fragment 类中,我注册和注销总线:
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
BusProvider.getInstanceBus().register(this);
}
@Override
public void onDetach() {
super.onDetach();
BusProvider.getInstanceBus().unregister(this);
}
使用泛型类:
public class BusProvider {
private static final Bus BUS = new Bus();
public static Bus getInstanceBus(){
return BUS;
}
private BusProvider(){}
}
success()
我通过改造请求的方法发布了我的事件:
@Override
public void success(DataResponseOne dataResponseOne, Response response) {
Log.d(GeneralConstants.LOG_TAG, " !SUCCES!");
//sent data to otto bus
BusProvider.getInstanceBus().post(dataResponseOne);
[some code for to get json in string]
Log.d(GeneralConstants.LOG_TAG + " !SUCCES!" + resultJSON );
}
第二个事件也是如此:
@Override
public void success(DataResponseTwo dataResponseTwo, Response response) {
Log.d(GeneralConstants.LOG_TAG, " !SUCCES!");
//sent data to otto bus
BusProvider.getInstanceBus().post(dataResponseTwo);
[some code for to get json in string]
Log.d(GeneralConstants.LOG_TAG + " !SUCCES!" + resultJSON );
}
我想我想念一些棘手的问题。任何建议将不胜感激。