2013-08-20 2 views
5

Я пытаюсь отправить sms в сервисе. Если sms не отправлен, значит, я перезапускаю службу через некоторое время, для этого я использую таймер. Если sms отправлено означает, что я хочу остановить таймер, для остановки таймера, который я использую timer.cancel(); перед этим я должен проверить, работает ли таймер или нет. Как его проверить?Как проверить, работает ли таймер или нет?

   int resultCode = getResultCode(); 
       switch (resultCode) 
       { 
       case Activity.RESULT_OK:     
          timer.cancel();//Here I want to check timer running or not 
       break; 

       case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
        timer_run(); 
       break; 

       case SmsManager.RESULT_ERROR_NO_SERVICE:  
        timer_run(); 
       break; 

       case SmsManager.RESULT_ERROR_NULL_PDU:   
         timer_run(); 
        break; 

       case SmsManager.RESULT_ERROR_RADIO_OFF:   
        timer_run(); 
        break; 

       } 

Таймер Расписание Функция

public void timer_run(){   

    TimerTask hourlyTask = new TimerTask() { 
     @Override 
     public void run() { 
      Intent myIntent = new Intent(Myservice.this,Myservice.class); 
      startService(myIntent); 


     } 
    }; 
    timer.schedule (hourlyTask, 0l, 500*5*5); 
    }  

ответ

10

Там нет необходимости проверять, если таймер работает, если все, что вам нужно сделать, это cancel() он (Это верно и для Timer и TimerTask).

В документации говорится, что

Этот метод может быть вызван повторно; второй и последующие вызовы не влияют.

Смежные вопросы