Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android onDestroy()中的停止计时器_Android - Fatal编程技术网

Android onDestroy()中的停止计时器

Android onDestroy()中的停止计时器,android,Android,嗨,伙计们,我想在方法onDestroy中停止我的计时器,但我不知道什么是最好的解决方案。。。 我在onDestroy中尝试了timer.purge(),但出现错误 @Override public void onDestroy(){ final ToggleButton btnImbarco = (ToggleButton) findViewById(R.id.toggleButton1); final ToggleButton btnAtterraDecolla = (

嗨,伙计们,我想在方法onDestroy中停止我的计时器,但我不知道什么是最好的解决方案。。。 我在onDestroy中尝试了timer.purge(),但出现错误

@Override
public void onDestroy(){

     final ToggleButton btnImbarco = (ToggleButton) findViewById(R.id.toggleButton1);
     final ToggleButton btnAtterraDecolla = (ToggleButton) findViewById(R.id.toggleButton3);
     final ToggleButton btnRitardo = (ToggleButton) findViewById(R.id.toggleButton2);

     if(!btnImbarco.isChecked() && !btnAtterraDecolla.isChecked() && !btnRitardo.isChecked())
         //STOP TIMER HERE
}

public void callAsynchronousTask(final TextView attendere, 
        final ToggleButton btnAtterraDecolla, final ToggleButton btnRitardo, final ToggleButton btnImbarco)
{
    final Handler handler = new Handler();
    Timer timer = new Timer();

    TimerTask doAsynchronousTask = new TimerTask() {       
        @Override
        public void run() {             
            handler.post(new Runnable() {

                public void run() {       
                    try {
                        FlightTask aTask =  new FlightTask(attendere,btnAtterraDecolla,btnRitardo,btnImbarco);

                        if(btnAtterraDecolla.isChecked())
                            ..........   

                        if(btnRitardo.isChecked())
                            ........... 

                        if(btnImbarco.isChecked())
                            ........

                        aTask.execute();

                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                    }
                }
            });
        }
    };
    timer.schedule(doAsynchronousTask, 0, TEMPO_ESECUZIONE_THREAD); //execute in every 50000 ms
}
@Override
protected void onCreate(Bundle savedInstanceState) {
......
你能帮我吗? 我只想在活动被破坏时停止计时器!
谢谢…

我通常用这种方式取消计时器: 我在启动计时器时将布尔值设置为true,然后在onDestroy中检查它

@Override
public void onDestroy() {
    stopUpdates();
    super.onDestroy();

}
private void stopUpdates() {
    if (isTimerRunning) {
        updateTimer.cancel();
        updateTimer.purge();
        updateTimer = null;
        isTimerRunning = false;
    }
}

我通常通过以下方式取消计时器: 我在启动计时器时将布尔值设置为true,然后在onDestroy中检查它

@Override
public void onDestroy() {
    stopUpdates();
    super.onDestroy();

}
private void stopUpdates() {
    if (isTimerRunning) {
        updateTimer.cancel();
        updateTimer.purge();
        updateTimer = null;
        isTimerRunning = false;
    }
}

通常是计时器。取消()…但请检查计时器=通常为NullTimer.cancel()…但请检查计时器是否为空=无效的