我正在尝试制作一个类似计数器的应用程序。但是,我正试图赚取收入,以便应用程序能够自我控制。
class Income extends TimerTask {
@Override
public void run() {
CowCount = CowCount + income;
}
}
Timer timer = new Timer();
timer.schedule(new Income(), 1000);
这是迄今为止的样子。但它不起作用。在timer.schedule中,中间的点被视为错误,第一个括号和同一行“收入”之后的第二个括号。 In this question,似乎我做的是正确的事。
最后一件事:即使我开始运行其他方法,这个计时器会继续运行吗?如果它停止我认为我需要找到另一种方式。
编辑:这些是错误: 1.令牌上的语法错误,错放的构造(s) 2.令牌上的语法错误“(”,= expect 3.令牌“)”上的语法错误,无效的参数列表。
第一个错误是在计时器和计划之间的点 第二个错误是在计划后的括号上。 第三个错误出现在最后一行代码“收入”之后的第二个括号中。
答案 0 :(得分:1)
确保您使用的是java.util.Timer
课程。如果你这样做,那么有些东西告诉我:
Timer timer = new Timer();
timer.schedule(new Income(), 1000);
这些代码超出了任何类上下文。您需要在类成员函数内部或构造函数内部执行此操作。例如:
public class checkTimer extends TimerTask{
int counter = 0;
public void startTimer()
{
Timer timer = new Timer();
timer.schedule(this, 500, 500);
}
@Override
public void run() {
counter++;
System.out.println(counter); // use logCat to see
}
}
最后一件事:即使我是这样,这个计时器会继续运行吗? 开始运行其他方法?如果它停止我认为我需要找到 另一种方式。
计时器将会运行,但您使用的是timer.schedule(new Income(), 1000);
,实际上是schedule(TimerTask, delay)
。它将在定义的延迟时间后运行一次。对于重复任务,您需要使用 -
schedule (TimerTask task, long delay, long period)
功能。其中period
是后续执行之间的时间量(以毫秒为单位)。