定时器任务不起作用!

发布于 2024-10-04 12:09:04 字数 1359 浏览 0 评论 0原文

我尝试使用计时器任务刷新用定点坐标绘制的线(每1秒后)。但该行似乎没有刷新...我的代码有什么问题吗?

LineRefresh.java:DrawView.java

package LineRefresh.xyz.com;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;

public class LineRefresh extends Activity {
DrawView drawView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    drawView = new DrawView(this);
    drawView.setBackgroundColor(Color.WHITE);
    setContentView(drawView);

}
}

package LineRefresh.xyz.com;
import java.util.Timer;
import java.util.TimerTask;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class DrawView extends View {
Paint paint = new Paint();

public DrawView(Context context) {
    super(context);    
}

@Override
public void onDraw(final Canvas canvas) { 
    paint.setColor(Color.BLACK);
    canvas.drawLine(50, 200, 270, 200, paint);  

    Timer timer = new Timer();
    TimerTask task = new TimerTask() {
        @Override
        public void run() {
            paint.setColor(Color.BLACK);
            canvas.drawLine(50, 200, 270, 200, paint);
            }
    };
    timer.schedule(task, 1000,1000);
}

}

我应该将计时器任务放在代码中的其他位置吗?

i have tried using a timertask to refresh a line(after every 1 second) drawn with fixed point coordinates. But the line doesn't appear to refresh...is there anything wrong in my code?

LineRefresh.java:

package LineRefresh.xyz.com;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;

public class LineRefresh extends Activity {
DrawView drawView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    drawView = new DrawView(this);
    drawView.setBackgroundColor(Color.WHITE);
    setContentView(drawView);

}
}

DrawView.java:

package LineRefresh.xyz.com;
import java.util.Timer;
import java.util.TimerTask;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class DrawView extends View {
Paint paint = new Paint();

public DrawView(Context context) {
    super(context);    
}

@Override
public void onDraw(final Canvas canvas) { 
    paint.setColor(Color.BLACK);
    canvas.drawLine(50, 200, 270, 200, paint);  

    Timer timer = new Timer();
    TimerTask task = new TimerTask() {
        @Override
        public void run() {
            paint.setColor(Color.BLACK);
            canvas.drawLine(50, 200, 270, 200, paint);
            }
    };
    timer.schedule(task, 1000,1000);
}

}

sholud i,instead, place the timertask somewhere else in my code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

美人迟暮 2024-10-11 12:09:04

而是使用 Android Handler 在一定时间后更新 UI。

Rather use Android Handler to update UI after certain time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文