私の質問は、Java ルーパーと、それらを正しい方法で停止する方法に関するものです。
次のようなスレッドが定義されているとしましょう。
class NoLooperThread extends Thread{
@Override
public void run(){
Thread.sleep(2000);
}
}
そして、私はほぼ同じですが、ルーパーを備えた別のスレッドを持っています:
class LooperThread extends Thread{
@Override
public void run(){
Looper.prepare();
Thread.sleep(2000);
Looper.loop();
}
}
もしそうなら:
new NoLooperThread().start();
私は2秒後にこのスレッドが死ぬ可能性があることを知りたいのですが、もしそうなら: new LooperThread().start(); スレッドは永遠にブロックし続けますか? 私の仮定は正しいですか?
どうすればこのスレッドを停止できますか? ブロッキングを停止するために電話する必要があることはわかっLooper.myLooper().quit();
ていますが、それを行う最善の方法は何ですか? ハンドラーを介してメッセージを送信して停止する必要がありますか?
したがって、ルーパーの目的は 2 つあります。メッセージ キューを作成するだけでなく、スレッドを存続させます。その仮定も正しいですか?
SO question hereを読んだ後、私の質問が来ます