2

我正在尝试制作一个类似于计数器的应用程序。但是,我正在努力赚取某种收入,以便应用程序自己计算。

class Income extends TimerTask {

    @Override
    public void run() {
        CowCount = CowCount + income;
    }

}

Timer timer = new Timer();
timer.schedule(new Income(), 1000);

到目前为止,这就是它的样子。但是,它不起作用。在 timer.schedule 中,中间的点被视为错误,“Income”之后的第一个括号和第二个括号位于同一行。在这个问题中,似乎我在做正确的事情。

最后一件事:即使我开始运行其他方法,这个计时器还会继续运行吗?如果它停止,我想我需要找到另一种方法。

编辑:这些是错误: 1. 标记上的语法错误,错误的构造 2. 标记上的语法错误“(”,= 预期 3. 标记上的语法错误“)”,无效的参数列表。

第一个错误在 timer 和 schedule 之间的点上。第二个错误在 schedule 之后的括号上。第三个错误位于代码最后一行“Income”之后的第二个括号中。

4

1 回答 1

3

确保您正在使用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是后续执行之间的时间量(以毫秒为单位)。

于 2013-10-22T19:44:08.643 回答