【问题标题】:How to run task using Thread in Background如何在后台使用线程运行任务
【发布时间】:2021-10-18 08:33:53
【问题描述】:
我想在后台做一些任务,比如在 android 中我们可以使用 AsyncTask 使用 UI 线程来做一些工作,在 Harmony 中我们有 EventHandler 允许我们在异步线程上发送和处理 InnerEvent 和 Runnable 对象。
我只是想要一个简单的例子来说明如何使用它。
【问题讨论】:
标签:
java
huawei-mobile-services
huawei-developers
harmonyos
【解决方案1】:
请检查示例 -
public class EventHandlerImplementation extends EventHandler {
private EventHandlerImplementation(EventRunner runner) {
super(runner);
}
@Override
public void processEvent(InnerEvent event) {
getUITaskDispatcher().asyncDispatch(() -> {
// do your stuff here
});
}
}
【解决方案2】:
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。