2012-12-05 9 views
8

मैं इस निम्नलिखित कोड है:कैसे निर्धारित करें टाइमर कार्य पूरा कर लिया है कि क्या

Timer timer = new Timer();  
TimerTask task = new TimerTask() { 

    @Override 
    public void run() { 
     // TODO Auto-generated method stub 
    } 
}; 

timer.schedule(task, 10000);//execute after 10 seconds 

हम यह निर्धारित कर सकते हैं कि क्या काम पहले से ही टाइमर द्वारा निष्पादित या अभी भी वजह से है है?

उत्तर

5

एक सरल चर की तरह जोड़े ..

boolean isTaskCompleted = false; 
    Timer timer = new Timer();  
    TimerTask task = new TimerTask() { 

    @Override 
    public void run() { 
     // do stuff 
     isTaskCompleted = true; 
    } 
    }; 

    timer.schedule(task, 10000);//execute after 10 seconds 
+0

यह एक अच्छा विचार है! लेकिन जब मैं कई उद्देश्यों के लिए एक ही कार्य को कई बार कॉल करता हूं। हालांकि, मेरे पास अलग-अलग कार्यों को रद्द करने के लिए अलग-अलग टाइमर चर हैं। मैं कैसे पा सकता हूं कि उस लंबवत टाइमर से संबंधित कार्य चल रहा है या नहीं। – Anand

3

ज़रूर,

class CustomTask extends TimerTask { 
    protected boolean isDone = false; 
    public boolean isDone() {return isDone; } 

    @Override 
     public void run() {} 
} 

CustomTask task = new CustomTask() { 
    @Override 
    public void run() { 
     isDone=true; 
    } 
}; 

संपादित करें: आप वर्ग का विस्तार से खुश नहीं हैं, तो आप विधि scheduledExecutionTime) इस्तेमाल कर सकते हैं (, इस यदि कार्य नहीं चलाया गया है तो 0 देता है।

http://docs.oracle.com/javase/6/docs/api/java/util/TimerTask.html

+0

मुझे इस कामकाज के बारे में पता है .. लेकिन यहां समस्या यह है कि Done() को स्पष्ट रूप से तब तक नहीं कहा जा सकता जब तक आप टाइमरटास्क का विस्तार नहीं करते। लेकिन मैं जानना चाहता था कि इसके लिए टाइमरटास्क से कोई एपीआई है .. – Pavan

+0

ठीक है, आपने पाया, मैंने अपना जवाब संशोधित किया है :) – JustDanyul

+0

धन्यवाद .. लेकिन निर्धारित एक्सेक्यूशनटाइम() के लिए एंड्रॉइड दस्तावेज़ यह कहता है: कार्य जो अभी तक नहीं चल रहे हैं एक अपरिभाषित मूल्य वापस करें। http://developer.android.com/reference/java/util/TimerTask.html#scheduledExecutionTime() – Pavan

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