Java POSTNVALIDATE在一段时间后停止工作

Java POSTNVALIDATE在一段时间后停止工作,java,android,Java,Android,我的片段中有以下代码,用于启动更新自定义视图上文本的线程: startStopButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("onclick"); new Thread(new Runnable() {

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

startStopButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            System.out.println("onclick");
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        while (true) {
                          gpsProgressView.setText(String.valueOf(Math.random()));                 
                        }
                    }
                },"UpdateThread").start();
        }
    });
在我看来,方法也是如此:

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();
}
现在我甚至不使用文本值,我只是增加进度变量

问题是,一切正常,文本更新,我的视图被重新绘制。过了一会儿(几秒钟),什么也没发生。我的线程不断调用postInvalidate(),视图不会重新绘制自身


我将listener添加到另一个按钮,该按钮会更改其背景颜色,按下后,我的视图会再次更新,直到它停止。

删除该线程并阅读有关Handlers的内容该线程用于演示pourporses,我在实际代码中以不同的方式调用它。关键是,这段代码运行良好,但经过一定时间(可能是1秒、5秒、10秒)。我的自定义视图不再重新绘制自身。好的,使用此线程,您已收到警告