【问题标题】: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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-17
        • 2020-10-24
        • 2021-07-29
        • 1970-01-01
        • 2020-10-07
        • 1970-01-01
        • 2016-02-26
        • 1970-01-01
        相关资源
        最近更新 更多