Запускает ли handler.post (runnable) новый поток? - PullRequest
5 голосов
/ 06 февраля 2012

Если обработчик был создан в основном потоке пользовательского интерфейса, создает ли сообщение с Runnable дочерний поток, который добавляется в очередь сообщений, или он просто запускается в потоке пользовательского интерфейса?

handler.post(new Runnable(){
    public void run() {
        // do stuff
    }
});

Ответы [ 2 ]

11 голосов
/ 06 февраля 2012

Нет, это не создает новую тему. Он просто выполняет ваш исполняемый файл в потоке, к которому привязан ваш обработчик, что в данном случае означает ваш поток пользовательского интерфейса

0 голосов
/ 14 мая 2014
handler.post(new Runnable()){

public  void run(){
//do something
}
});

это не гарантирует, что он создаст новый поток. Он просто вызовет исполняемый файл потока, к которому подключен обработчик (поток пользовательского интерфейса здесь).

Обработчик не создает новый поток, он привязывается к петлителю потока, в котором он создан (в данном случае к основному потоку), или к петлителю, который вы даете ему во время построения.

...