postInvalidate在while之后停止工作

时间:2015-09-26 17:01:45

标签: java android

我的片段中有以下代码,它启动了在我的自定义视图上更新文本的线程:

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()并且视图没有重新绘制自己。

我将监听器添加到另一个按钮,改变了它的背景颜色,按下它之后,我的视图再次更新,直到它停止。

0 个答案:

没有答案