2012-04-17 24 views
6

मैंने अभी देखा है कि एंड्रॉइड थ्रेडिंग में निलंबित और फिर से शुरू किया गया है। इसके लिए क्या काम है या मैं एंड्रॉइड में थ्रेड को कैसे निलंबित और फिर से शुरू कर सकता हूं?एंड्रॉइड में थ्रेड को कैसे निलंबित और फिर से शुरू करें?

+0

कैसे सेवा के बारे में: http://developer.android.com/ गाइड/विषय/मूलभूत/services.html – Leo

+0

हाय लियोलिंक मुझे नहीं लगता कि सेवाएं मेरी समस्या का समाधान करेंगी। धन्यवाद किसी भी तरह :) – rosesr

उत्तर

7

दरअसल, यादृच्छिक बिंदुओं पर धागे को निलंबित या रोकना एक असुरक्षित विचार है, यही कारण है कि इन विधियों को बहिष्कृत किया गया है।

सबसे अच्छा आप मेरी राय में क्या कर सकते हैं wait का उपयोग कर अपने धागा के run विधि में रुक कर और वहाँ रोकने की नियत बिन्दु है:

class ThreadTask implements Runnable { 

    private volatile boolean paused; 
    private final Object signal = new Object(); 

    public void run() { 
     // some code 

     while(paused) { // pause point 1 
      synchronized(signal) signal.wait(); 
     } 

     // some other code 

     while(paused) { // pause point 2 
      synchronized(signal) signal.wait(); 
     } 

     // ... 
    } 

    public void setPaused() { 
     paused = true;  
    } 

    public void setUnpaused() { 
     paused = false; 
     synchronized(signal) signal.notify(); 
    } 
} 
+0

ओह ठीक है अब मैं इसे समझता हूं @ ट्यूडर। बीटीडब्ल्यू एक और स्पष्टीकरण धागे में सिग्नलिंग के समान है? – rosesr

+1

@rosesr: उदाहरण के लिए लिनक्स में यह स्थिति चर के समान है। – Tudor

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