2013-08-20 11 views
5

मैं सेवा में एसएमएस भेजने की कोशिश करता हूं। अगर एसएमएस नहीं भेजा जाता है तो मैं कुछ समय बाद सेवा को पुनरारंभ करता हूं, इसके लिए मैं टाइमर का उपयोग करता हूं। अगर एसएमएस भेजे गए हैं तो मैं टाइमर को रोकना चाहता हूं, टाइमर का उपयोग करने के लिए 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 के लिए सच है) है अगर टाइमर चल रहा है की जाँच की कोई जरूरत नहीं है।

प्रलेखन कहा गया है कि

इस विधि को बार-बार कहा जा सकता है; दूसरी और बाद की कॉल का कोई प्रभाव नहीं पड़ता है।

संबंधित मुद्दे