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秒)。我的自定义视图不再重新绘制自身。好的,使用此线程,您已收到警告