java.lang.IllegalStateException:TimerTask已计划

java.lang.IllegalStateException:TimerTask已计划,java,android,timer,Java,Android,Timer,显示此错误的计时器出现问题。我有一个定时器,它调度定时器任务(关闭)。然后,在TimerTask中,我安排下一个TimerTask等等。据我所知,这应该是可行的,但当我运行它的应用程序有“停止工作”的错误 levelCreationTimer.schedule(关闭,1000)我通过创建扩展TimerTask的类来解决这个问题,然后我安排类的实例 class MyClass1 extends TimerTask { @Override public void run()

显示此错误的
计时器出现问题。我有一个
定时器
,它调度
定时器任务
(关闭)。然后,在
TimerTask
中,我安排下一个
TimerTask
等等。据我所知,这应该是可行的,但当我运行它的应用程序有“停止工作”的错误


levelCreationTimer.schedule(关闭,1000)
我通过创建扩展
TimerTask
的类来解决这个问题,然后我安排类的实例

class MyClass1 extends TimerTask {
    @Override
    public void run()
    {
        //my code
        levelCreationTimer.schedule(new MyClass2(),1000);
        //scheduling the next TimerTask ^
    }
}
class MyClass2 extends TimerTask {
    @Override
    public void run()
    {
        //my code
        levelCreationTimer.schedule(new MyClass1(),1000);
        //scheduling the next TimerTask ^
    }
}

异常消息表示TimerTask对象只能调度一次。在计划对象之前,请尝试克隆对象(近、远、最后)
TimerTask task=close.clone();levelCreationTimer.schedule(任务,1000)@mkasberg创建一个新的计时器不会解决这个问题吗?不,如果一个计时器任务只能调度一次,并且您传递的是同一个计时器任务,则不会。请阅读此处的计时器任务文档:它说您可以调度一个计时器任务一次性或重复执行。您正在将其安排为一次性执行。阅读此处有关计时器的文档:如果要重复执行,则需要在调用
schedule()
时传入
period
参数。您可以使用我最初的建议克隆任务,也可以重构代码以使用重复计时器。“clone()”方法无法工作,因为TimerTask是抽象的(我无法从中创建对象)。
        levelCreationTimer.cancel();
        levelCreationTimer = new Timer();
class MyClass1 extends TimerTask {
    @Override
    public void run()
    {
        //my code
        levelCreationTimer.schedule(new MyClass2(),1000);
        //scheduling the next TimerTask ^
    }
}
class MyClass2 extends TimerTask {
    @Override
    public void run()
    {
        //my code
        levelCreationTimer.schedule(new MyClass1(),1000);
        //scheduling the next TimerTask ^
    }
}