onDraw 中的 invalidate() 没有调用 onDraw

问题描述

我在 onDraw 中使用 invalidate()获取加载视图,但它没有启动 onDraw 调用

public void onDraw(Component component,Canvas canvas) {
<function body>
invalidate()
}

解决方法

  1. 确保您在实现中调用 addDrawTask 方法
  2. 即使在调用 addDrawTask 方法之后,如果没有在 UI 线程上调用 invalidate(),那么 onDraw() 可能不会在 UI 线程上被调用。 因此,我们可以通过实现以下语句来确保在 UI 线程上调用它:
 context.getUITaskDispatcher().asyncDispatch(this::invalidate);

当我试图连续调用 onDraw() 方法来显示动画时,这对我个人有用。