为了测试目的,我已经设置了一个定时器设置为每30秒执行一次任务,并且当前它打开并且计时器工作但它没有关闭并且任务只是继续执行。 切换按钮代码
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Timer myTimer = new Timer();
MyTimerTask myTimerTask = new MyTimerTask();
if (isChecked)
{
myTimer.scheduleAtFixedRate(myTimerTask,0,30000);
Toast.makeText(getBaseContext(),"Check-In will be done every 30 seconds",Toast.LENGTH_SHORT).show();
}
else
{
myTimer.cancel();
Toast.makeText(getBaseContext(),"Manual Check-In enabled",Toast.LENGTH_SHORT).show();
}
}
此代码位于onCreate方法
中 toggler = (ToggleButton) findViewById(R.id.togglelocationupdate);
toggler.setOnCheckedChangeListener(this);
我的MainActivity实施CompoundButton.OnCheckedChangeListener
答案 0 :(得分:0)
因为每次单击按钮时都要创建Timer
的新实例。将myTimer
声明移至班级。