取消后创建一个新的计时器

时间:2017-04-12 16:13:42

标签: android

我有一个定时器,只需点击一下按钮即可以一定的速度(500毫秒)播放声音。

final Timer timer = new Timer("Timer", true);

final TimerTask tone = new TimerTask(){
    @Override
    public void run(){   
        sound1.start();
    }
};

Button go = (Button)findViewById(R.id.buttonGo);

go.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        timer.scheduleAtFixedRate(tone, 500, 500); 
    }
});

我有另一个按钮可以停止播放此计时器,理论上会创建另一个计时器,以便再次播放。

Button stop = (Button)findViewById(R.id.buttonStop);

stop.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        timer.cancel();
        final Timer timer = new Timer("Timer", true);
    }
});

按下停止按钮后,计时器成功停止,但我无法再次播放,它会使应用程序崩溃。有谁知道解决方案?

1 个答案:

答案 0 :(得分:0)

问题只是变量计时器的范围。它在onClick()中声明,你可能试图从外面访问它。