当前位置:   article > 正文

Attempt to update UI in non-UI thread._java.lang.illegalstateexception: attempt to update

java.lang.illegalstateexception: attempt to update ui in non-ui thread.

不管鸿蒙还是安卓都要求在UI线程更新UI相关组件,在相关项目时使用TaskDispatcher执行识别任务,并识别出结果

  1. TaskDispatcher taskDispatcher = getGlobalTaskDispatcher(TaskPriority.DEFAULT);
  2. taskDispatcher.syncDispatch(() -> {
  3. //获取识别结果
  4. ArrayList<Recognition> results = mPredictor.recognize("person");
  5. //之后在Layout上绘制识别结果
  6. rootContainer.addDrawTask(new Component.DrawTask() {//在此处会报一下错误,见下表
  7. @Override
  8. public void onDraw(Component component, Canvas canvas) {
  9. //省略一部分代码...
  10. canvas.drawRect(location.left, location.top, location.right, location.bottom, rectPaint);
  11. }
  12. });
  13. }

由于没有在UI线程更新代码报错如下

  1. E AndroidRuntime:  FATAL EXCEPTION: PoolThread-16 
  2. E AndroidRuntime:  Process: com.wincent.harmonybot, PID: 12921 
  3. E AndroidRuntime:  java.lang.IllegalStateException: Attempt to update UI in non-UI thread. 
  4. E AndroidRuntime:      at ohos.agp.components.Component.nativeAddDrawTaskOverContent(Native Method
  5. E An
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/333748
推荐阅读
相关标签
  

闽ICP备14008679号