我有一个定时器,只需点击一下按钮即可以一定的速度(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);
}
});
按下停止按钮后,计时器成功停止,但我无法再次播放,它会使应用程序崩溃。有谁知道解决方案?
答案 0 :(得分:0)
问题只是变量计时器的范围。它在onClick()中声明,你可能试图从外面访问它。