我的问题是关于 java loopers 以及如何以正确的方式阻止它们。
可以说我有一个线程定义是这样的:
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();
来停止阻塞,但最好的方法是什么?我应该通过处理程序发送消息来阻止它吗?
那么 Looper 的目的有两个:它创建一个消息队列但也保持一个线程处于活动状态,这个假设是否也正确?
我的问题是在这里阅读 SO 问题后提出的