我在我的应用程序中使用ScrollView类。我从指南针在画布上绘制一些数据,这些数据会定期通过用户的交互进行更新。
如何在显示器上无需用户触摸的情况下定期调用onDraw方法?我是否可以在没有其他线程的情况下定期刷新画布的内容并调用view.postInvalidate()
?
答案 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);
结束它或使用布尔标志来阻止另一个帖子。