Following is a quick code snippet of how to use runOnUiThread() method :

this@MainActivity.runOnUiThread(java.lang.Runnable {
    progressBar.visibility = View.GONE
})

Android runOnUiThread Example

Android runOnUiThread Example – In this Android Tutorial, we shall learn how to use runOnUiThread with an Example Android Application.

runOnUiThread runs the specified action on the UI thread. If the current thread is the UI thread, then the action is executed immediately. If the current thread is not the UI thread, the action is posted to the event queue of the UI thread.

If you try to touch view of UI thread from another thread, you will get Android CalledFromWrongThreadException.

Following is an example Android Application demonstrating the usage of runOnUiThread() method.

Create Android Application with Kotlin Support with following details and rest values to default.

Application Name runOnUiThread Example
Company name tutorialkart.com
Minimum SDK API 21: Android 5.0 (Lollipop)
Activity Empty Activity

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    tools:context="com.tutorialkart.runonuithreadexample.MainActivity">

    <TextView
        android:id="@+id/textview_msg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />

</LinearLayout>

MainActivity.kt

package com.tutorialkart.runonuithreadexample

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // start some dummy thread that is different from UI thread
        Thread(Runnable {
            // performing some dummy time taking operation
            var i=0;
            while(i<Int.MAX_VALUE){
                i++
            }

            // try to touch View of UI thread
            this@MainActivity.runOnUiThread(java.lang.Runnable {
                this.textview_msg.text = "Updated from other Thread"
            })
        }).start()
    }
}