2013-08-20 18 views
5

Próbuję wysłać sms w serwisie. Jeśli SMS nie zostanie wysłany oznacza to, że ponownie uruchomię usługę po pewnym czasie, dla tego I Używanie timera. Jeśli wysłany SMS oznacza, że ​​chcę zatrzymać zegar, do zatrzymania timera używam timer.cancel(); przed tym muszę sprawdzić, czy timer działa, czy nie. Jak to sprawdzić?Jak sprawdzić, czy zegar wciąż działa, czy nie?

   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; 

       } 

funkcja Harmonogram czasowy

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); 
    }  

Odpowiedz

10

Nie ma potrzeby, aby sprawdzić, czy licznik działa, jeśli wszystko, co chcesz zrobić, to cancel() to (Dotyczy to zarówno Timer i TimerTask).

Dokumentacja wskazuje, że

Metoda ta może być wielokrotnie nazywa; drugie i kolejne połączenia nie działają.

Powiązane problemy