2013-08-20 17 views
5

Hizmete sms göndermeye çalışırım. Sms gönderilmezse, bir süre sonra servisi yeniden başlattığım anlamına gelir, bunun için I zamanlayıcıyı kullanır. Gönderilen sms, zamanlayıcıyı durdurmak istediğim zamanlayıcıyı durdurmak istediğim anlamına gelir. timer.cancel(); Bundan önce, zamanlayıcıyı kontrol ettim ya da kontrol etmiyorum. Bunu kontrol etmek için?Zamanlayıcının hala çalışıyor olup olmadığını nasıl kontrol edebilirim?

   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; 

       } 

Zamanlayıcı Zamanlama fonksiyonu

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

cevap

10

zamanlayıcı çalışıyorsa yapmak istediğiniz tüm cancel() o (Bu, hem Timer ve TimerTask için geçerlidir) olup olmadığını kontrol etmeye gerek yoktur.

belgeler Bu yöntem sürekli olarak adlandırılabilir

belirtmektedir; ikinci ve sonraki aramaların hiçbir etkisi yoktur.

İlgili konular