使用java.util.Timer

时间:2017-03-04 17:29:39

标签: java android exception timer timertask

class Rhythm extends TimerTask
{
  private java.util.Timer SegmentTimer; 
  pubic void start()
  {
    this.Segmenttimer = new Timer(true);
    Segmenttimer.scheduleAtFixedRate(this, 0, 1000);
  }
  public void run() {}
  public void stop()
  {
    this.SegmentTimer.Cancel();
  }
}

class Program
{
  Rhythm rhythm = new Rhythm();

  for (item : List)
  {
    rhythm.start();
  }
}

这是我的示例程序。我有一些逻辑来加载节奏对象。在这种情况下,我只是展示了在每个循环开始之前创建一个新实例。原因是我正在基于json数据初始化节奏对象列表。所以,我想优化过程并避免重复的IO操作来解析循环内的json数据。

我的问题是循环的第二次迭代失败,并说已经安排了TimeTask。

请帮助解决这个问题。

1 个答案:

答案 0 :(得分:0)

您的代码不完整...... TimerTask的子类必须实现run方法,另外一方面,您需要添加一次,不能重启Timer两次,所以这部分不正确:

for (item : List) {
    rhythm.start();
  }

也许您需要定义item对象,以便它们拥有自己的Timer,您可以在循环中启动

如果笔记与节奏无关,那么你可以这样做:

for (item : List) {
    rhythm = new Rhythm();
    rhythm.start(); 
}