handler.post(new Runnable()){
public void run(){
//do something
}
});
это не гарантирует, что он создаст новый поток. Он просто вызовет исполняемый файл потока, к которому подключен обработчик (поток пользовательского интерфейса здесь).
Обработчик не создает новый поток, он привязывается к петлителю потока, в котором он создан (в данном случае к основному потоку), или к петлителю, который вы даете ему во время построения.