Handler: Связать его с Looper основного потока.Runnable или Message: Отправить их через Handler для выполнения на связанном потоке (в данном случае - основном).kotlin
Looper.getMainLooper() получает Looper, связанный с основным потоком.Handler(Looper.getMainLooper()) создает Handler, который будет обрабатывать сообщения, отправленные ему, на основном потоке.post(Runnable) ставит Runnable в очередь сообщений Looper для выполнения.sendMessage(Message) отправляет сообщение в очередь сообщений Looper.Альтернатива: Анонимный класс Handler c handleMessage
Можно переопределить метод handleMessage в анонимном классе Handler для обработки сообщений.
kotlin
В этом случае, при получении сообщения, будет вызван метод handleMessage на основном потоке.