停止したい実行中のスレッドがあり、後で再開します。これらは非推奨であり、スレッドを正常に停止しているように見える以下のコードにたどり着いたため、stop() などを使用しないことを学びました。run メソッドを終了するだけです。さて、どうすれば再開できるでしょうか?start() メソッドを呼び出すと、スレッドがまだ実行されていると表示されるので、この状況で run() を直接呼び出すとどうなりますか? それは何か問題を引き起こしますか?ところで、違いがある場合、これは Android アプリ用です。
private volatile stopThread;
public void stopButton() {
// this is called when button is clicked
// and thread is already started and running
stopThread= true;
}
public void run() {
while (!stopThread) {
// do something here
}
stopThread=false;
}
編集:スレッドが開始されたときに開始するタイマーであり、一時停止して再度開始できます。したがって、timer は Thread オブジェクトを含むクラスです (既に SurfaceView でクラスを拡張しています)。