在执行下一行代码之前,等待View重绘自身

时间:2015-02-17 20:36:36

标签: android android-view

我在onTouch监听器中有这样一段代码:

game.setNextMove(move);
boardView.invalidate();
checkEnd();
computerMove(boardView);

我希望在checkEnd()方法完成之前重新绘制boardView。我怎么能强迫它这样做呢?

1 个答案:

答案 0 :(得分:0)

我认为您需要考虑评论中提到的设计,并表示您可以通过Post()使用handler来执行checkEnd()来实现目标。这将起作用的原因是发布到主处理程序会将其添加到已经调用Invalidate的消息队列中,该队列将在处理程序上调用Post()之前执行。< / p>

简而言之,你可以这样做:

boardView.invalidate();
Handler handler = new Handler()
hanlder.Post(new Runnable(
  @Override
  public void run () {
    checkEnd();
  }
));