2012-04-05 22 views
12

मैं एंड्रॉइड पर टाइमर टास्क फ़ंक्शन के लिए दस्तावेज़ ढूंढने के लिए संघर्ष कर रहा हूं। मुझे टाइमरटास्क का उपयोग करके अंतराल पर एक थ्रेड चलाने की आवश्यकता है लेकिन इस बारे में कोई जानकारी नहीं है कि इस बारे में कैसे जाना है। किसी भी सलाह या उदाहरण की सराहना की जाएगी।थ्रेड चलाने के लिए आप टाइमरटास्क का उपयोग कैसे करते हैं?

उत्तर

22

आप एक Timer उपयोग करें, और कि स्वचालित रूप से जब आप एक TimerTaskschedule -methods के किसी भी उपयोग अनुसूची आप के लिए एक नया थ्रेड पैदा करता है।

उदाहरण:

Timer t = new Timer(); 
t.schedule(myTimerTask, 1000L); 

यह एक टाइमर एक धागा एक बार हर दूसरा यह है कि टाइमर से संबंधित में myTimerTask चल बनाता है।

+0

उपर्युक्त कोड एक तिहाई में एक तिहाई कार्य को एक थ्रेड में एक बार _ बार एक बार चलाने के लिए बनाता है। प्रत्येक सेकेंड में एक बार कार्य चलाने के लिए, इस अधिभारित 'शेड्यूल' विधि का उपयोग करें: 'शेड्यूल (टाइमर टास्क कार्य, लंबी देरी, लंबी अवधि) '। उदाहरण के लिए, 'timer.schedule (myTimerTask, 1000L, 2000L)' एक टाइमर बनाता है जो 1 सेकंड की प्रारंभिक देरी के बाद हर 2 सेकंड चलाता है। विधि [लिंक] का लिंक यहां है (https://developer.android.com/reference/java/util/Timer.html#schedule (java.util.TimerTask, लंबा, लंबा)) [लिंक] –

+0

लिंक उपर्युक्त टिप्पणी में गलत तरीके से स्वरूपित किया गया था। [टाइमर के तरीकों] के लिए सही लिंक यहां दिया गया है (https://developer.android.com/reference/java/util/Timer.html) –

47

मैं कुछ इस तरह लागू किया है और यह ठीक काम करता है:

private Timer mTimer1; 
    private TimerTask mTt1; 
    private Handler mTimerHandler = new Handler(); 

    private void stopTimer(){ 
     if(mTimer1 != null){ 
      mTimer1.cancel(); 
      mTimer1.purge(); 
     } 
    } 

    private void startTimer(){ 
     mTimer1 = new Timer(); 
     mTt1 = new TimerTask() { 
      public void run() { 
       mTimerHandler.post(new Runnable() { 
        public void run(){ 
         //TODO 
        } 
       }); 
      } 
     }; 

     mTimer1.schedule(mTt1, 1, 5000); 
    } 
+1

भयानक उत्तर ... क्यों कोई अपवॉट नहीं? .... –

+0

शेड्यूल में 1 क्या है? – Praneeth

+0

शेड्यूल में 1 अनुसूचित टाइमरटास्क के पहले निष्पादन से पहले मिलीसेकंड में समय की मात्रा है। 5000 मिलीसेकंड में बाद के निष्पादन के बीच देरी की मात्रा है। – Cogentleman

7

यह टाइमर कार्य के लिए आदर्श उदाहरण है।

Timer timerObj = new Timer(); 
    TimerTask timerTaskObj = new TimerTask() { 
     public void run() { 
      //perform your action here 
     } 
    }; 
    timerObj.schedule(timerTaskObj, 0, 15000); 

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

  • कोई संबंधित समस्या नहीं^_^