如何在后台使用线程 运行 任务
How to run task using Thread in Background
我想在后台做一些任务,比如在 android 中,我们可以使用 AsyncTask 来使用 UI 线程做一些工作,在 Harmony 中,我们有 EventHandler,它允许我们发送和处理 InnerEvent和异步线程上的 Runnable 对象。
我只是想要一个关于如何使用它的简单示例。
请检查样本-
public class EventHandlerImplementation extends EventHandler {
private EventHandlerImplementation(EventRunner runner) {
super(runner);
}
@Override
public void processEvent(InnerEvent event) {
getUITaskDispatcher().asyncDispatch(() -> {
// do your stuff here
});
}
}
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);
详情请参考this official Docs。
我想在后台做一些任务,比如在 android 中,我们可以使用 AsyncTask 来使用 UI 线程做一些工作,在 Harmony 中,我们有 EventHandler,它允许我们发送和处理 InnerEvent和异步线程上的 Runnable 对象。
我只是想要一个关于如何使用它的简单示例。
请检查样本-
public class EventHandlerImplementation extends EventHandler {
private EventHandlerImplementation(EventRunner runner) {
super(runner);
}
@Override
public void processEvent(InnerEvent event) {
getUITaskDispatcher().asyncDispatch(() -> {
// do your stuff here
});
}
}
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);
详情请参考this official Docs。