2

我想在后台做一些任务,比如在 android 中,我们可以使用 AsyncTask 使用 UI 线程做一些工作,在 Harmony 中,我们有 EventHandler,它允许我们在异步线程上发送和处理 InnerEvent 和 Runnable 对象。

我只想要一个关于如何使用它的简单示例。

4

2 回答 2

2

请检查样品 -

 public class EventHandlerImplementation extends EventHandler {
        private EventHandlerImplementation(EventRunner runner) {
            super(runner);
        }

        @Override
        public void processEvent(InnerEvent event) {
            getUITaskDispatcher().asyncDispatch(() -> {
                 // do your stuff here
            });
        }
    }
于 2021-10-18T08:52:03.077 回答
1
private final int eventUpdateGet = 1001;
private final int eventUpdateSend = 1002; 

private class MyEventHandler extends EventHandler {
    private MyEventHandler(EventRunner runner) throws IllegalArgumentException {
        super(runner);
    }

    @Override
    protected void processEvent(InnerEvent event) {
        super.processEvent(event);
        switch (event.eventId) {
            case eventUpdateGet:
                Object object = event.object;
                txGet.setText(String.valueOf(object));
                break;
            case eventUpdateSend:
                ....
                break;
            default:
                break;
        }
    }
}


@Override
protected void onStart(Intent intent) {
    myHandler = new MyEventHandler(EventRunner.current());
}

使用时,您可以:

String msgGet = "......"
InnerEvent event = InnerEvent.get(eventUpdateGet, msgGet);
myHandler.sendEvent(event);

有关详细信息,请参阅此官方文档

于 2021-10-19T07:44:59.017 回答