Java 在自定义视图中使用invalidate的奇怪行为
我有一个customview,当触摸customview并在customview中显示该值时,我会在其中增加一个值 这在95%的情况下运行良好,但有时自定义视图会显示旧值,我无法解释这是如何发生的 例如: 日志说: 123456 Customview显示: 123454 我的代码:Java 在自定义视图中使用invalidate的奇怪行为,java,android,android-custom-view,invalidation,Java,Android,Android Custom View,Invalidation,我有一个customview,当触摸customview并在customview中显示该值时,我会在其中增加一个值 这在95%的情况下运行良好,但有时自定义视图会显示旧值,我无法解释这是如何发生的 例如: 日志说: 123456 Customview显示: 123454 我的代码: public class MyView extends View { private int testvalue = 0; private final Handler updateHand
public class MyView extends View {
private int testvalue = 0;
private final Handler updateHandler = new Handler() {
public void handleMessage(final Message msg) {
testvalue = testvalue + 1;
invalidate();
}
};
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paintstatus.setTextSize(120);
canvas.drawText("" + testvalue,400,600,paintstatus);
Log.v("DEBUG_DRAW","" + testvalue);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
updateHandler.sendEmptyMessage(0);
return true;
}
}
日志说:
2020-08-28 08:56:46.638 20171-20171/myapp V/DEBUG_DRAW: 40
2020-08-28 08:56:46.705 20171-20171/myapp V/DEBUG_DRAW: 41
2020-08-28 08:56:47.505 20171-20171/myapp V/DEBUG_DRAW: 42
2020-08-28 08:56:47.587 20171-20171/myapp V/DEBUG_DRAW: 43
2020-08-28 08:56:47.587时,我在屏幕上看到以下内容:
有人对此有解释吗?我做错了什么