Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

android event framework

使用方法

  1. 定义自己的Application,初始化生成器

public class EventApplication extends Application {
public void onCreate() {
super.onCreate();
Builder builder = new Builder().taskExecutor(3).singleExecutor();
EventEmitterConfiguration eventEmitterConfiguration = new EventEmitterConfiguration(builder);
generator.initEventEmitter(eventEmitterConfiguration);
}
}

2.在自己的Activity中定义和注册事件

protected void onCreate(Bundle savedInstanceState) {
eventEmitter = EventEmitterGenerator.getInstance().generateEmitter();
EventCallback errorCallback = new EventCallback() {
public void callback(Object object) {
Object[] ll = (Object[]) object;
String result = (String) ll[1];
resultView.setText(result);
}
);
//如果是单纯的后台任务,可以不设置callback
Event errorEvent = Event.createInstance().setNextHandler(new ErrorEventHandler()).setEventCallback(errorCallback);
//注册事件
eventEmitter.regEvent(HandlerContants.ALLOT_EVENT_HANDLER, event);
eventEmitter.regEvent(HandlerContants.ERROR_EVENT_HANDLER, errorEvent);
}

3.触发事件

eventEmitter.fireEvent(HandlerContants.ALLOT_EVENT_HANDLER, new Object[] { host, userAgent });

4.你也可以在自己的handle中调用别的事件(当然这个事件需要先注册)

public class AllotEventHandler implements EventHandler {
...
@Override
public void handler(EventContext eventContext,Object[] args) {
...
HttpSocketRequest request = new HttpSocketRequest(HOST, PORT, sb.toString());
String response = request.sendRequest();
if (response == null) {
eventContext.invokeError(200, "获取allot失败"); }
eventContext.invokeNext(response); }
}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages