我的片段中有以下代码,它启动了在我的自定义视图上更新文本的线程:
public void setText(final String text)
{
this.text = text;
repaint();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
System.out.println("onDraw");
// canvas.drawCircle(circleCenterX, circleCenterY, circleRadius, innerCirclePaint);
// drawOuterRing(canvas);
drawText(canvas);
}
private void drawText(Canvas canvas) {
progress += 0.1;
canvas.drawText(String.valueOf(progress), textCenterX, textCenterY, textPaint);
}
public void repaint() {
postInvalidate();
}
然后在我看来再次使用方法:
{{1}}
现在我甚至不使用文本值,我只是增加进度变量。
问题是,一切正常,文本更新和我的视图重新粉刷。过了几秒钟(几秒钟),没有任何反应。我的线程一直在调用postInvalidate()并且视图没有重新绘制自己。
我将监听器添加到另一个按钮,改变了它的背景颜色,按下它之后,我的视图再次更新,直到它停止。