O manipulador criado no thread principal age como se estivesse em outro thread

Como o google diz:

Um manipulador permite enviar e processar objetos Message e Runnable associados ao MessageQueue de um thread. Cada instância do manipulador está associada a um único encadeamento e à fila de mensagens desse encadeamento. Quando você cria um novo manipulador, ele é vinculado à fila de encadeamentos / mensagens do encadeamento que o está criando - a partir desse momento, ele envia mensagens e executáveis para essa fila de mensagens e os executa à medida que saem da mensagem fila.

E eu espero que quando eu criar um manipulador no segmento principal (thread da interface do usuário), anexado a este segmento, para que faça com que congele a interface do usuário até o final da tarefa. Mas, no teste, isso não acontece e age como se estivesse em um encadeamento de fundo e faz sua tarefa paralelamente. Eu costumava criar o Handle assim:

 Handler mainHandler = new Handler(Looper.getMainLooper());

    Runnable runnable = new Runnable() {
        @Override
        public void run() {
            for (int i = 0; i < 35000; i++) {
                log.i(TAG,"log in Handler:"+i);
            }}
    };

    mainHandler.post(runnable);
    log.i(TAG,"log outSide");

Em mainActivity (o identificador deve ser vinculado ao segmento Principal). Então, qual é o problema com isso ou eu crio o manipulador de maneira errada?

Alguns amigos percebem quedoSomthing() não é complicado o suficiente, mas por que vemos "logoutSide" antes de "log in Handler:" se eles estão em um mesmo thread.

questionAnswers(1)

yourAnswerToTheQuestion