6

Android スレッドのサスペンドとレジュームが非推奨になっていることに気付きました。これの回避策は何ですか、またはアンドロイドでスレッドを一時停止して再開するにはどうすればよいですか?

4

1 に答える 1

7

実際、ランダムなポイントでスレッドを一時停止または停止することは安全ではないため、これらのメソッドは推奨されていません。

私の意見では、あなたができる最善の方法は、スレッドのrunメソッドで一時停止し、そこで停止する固定ポイントを次のように使用すること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();
     }
}
于 2012-04-17T10:22:59.957 に答える