2012-04-17 6 views
6

私は、アンドロイドスレッドの中断と再開が推奨されなくなったことに気づきました。これを回避するにはどうすればいいですか、またはアンドロイドでスレッドを中断して再開するにはどうすればよいですか?アンドロイドのスレッドを中断して再開するにはどうすればいいですか?

+0

どのサービスについて:http://developer.android.com/ guide/topics/fundamentals/services.html – Leo

+0

こんにちはLeoLink私はサービスが私の問題を分類するとは思わない。 anywyaysありがとうございます:) – 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

ああ、私はそれを理解しています@チューダー。 btw別の明確化は、これはスレッド内のシグナリングに似ていますか? – rosesr

+1

@rosesr:これは、例えばlinuxの条件変数に似ています。 – Tudor

関連する問題