Мой вопрос касается петлителей 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();
, чтобы остановить блокировку, но как лучше всего это сделать? я должен отправить сообщение через обработчик, чтобы остановить его?
Итак, у Looper две цели: он создает очередь сообщений, но также поддерживает поток сообщений. Верно ли и это предположение?
Мои вопросы приходят после прочтения вопроса SO здесь а>