2012-04-17 8 views
6

Ich habe gerade bemerkt, dass suspendieren und in Android-Threading wieder aufzunehmen ist veraltet. Was ist die Arbeit dafür oder wie kann ich einen Thread in android andocken und fortsetzen?Wie Anhalten und Fortsetzen Threads in Android?

+0

wie etwa Service: http://developer.android.com/ guide/Themen/Grundlagen/services.html – Leo

+0

Hallo LeoLink ich denke nicht, Dienste mein Problem sortieren würde. danke anyways :) – rosesr

Antwort

7

der Tat, zu suspendieren oder Fäden an zufälligen Punkten zu stoppen ist eine unsichere Idee, weshalb diese Methoden sind veraltet.

Das Beste, was Sie meiner Meinung nach tun können, ist Fixpunkte zu haben, der eine Pause in run Methode des Thread und dort anzuhalten mit wait:

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

Oh ok Ich verstehe es jetzt @Tudor. Eine andere Klarstellung ist das ähnlich der Signalisierung in Threads? – rosesr

+1

@rosesr: Es ist ähnlich wie Variablen in Linux zum Beispiel konditionieren. – Tudor

Verwandte Themen