如何定期调用onDraw?

时间:2012-03-15 20:09:21

标签: android

我在我的应用程序中使用ScrollView类。我从指南针在画布上绘制一些数据,这些数据会定期通过用户的交互进行更新。

如何在显示器上无需用户触摸的情况下定期调用onDraw方法?我是否可以在没有其他线程的情况下定期刷新画布的内容并调用view.postInvalidate()

1 个答案:

答案 0 :(得分:8)

Handler类非常方便。

Handler viewHandler = new Handler();
Runnable updateView = new Runnable(){
  @Override
  public void run(){
     globalView.invalidate();
     viewHandler.postDelayed(updateView, MILLISECONDS_TILL_UPDATE);
  }
};

在UI线程中的任何位置调用viewHandler.post(updateView);,它将在Runnable中指定的每x毫秒无限调用MILLISECONDS_TILL_UPDATE。调用viewHandler.removeCallbacks(updateView);结束它或使用布尔标志来阻止另一个帖子。