Android

[안드로이드/Thread] RunOnUiThread

gangmini 2023. 4. 17. 17:07
반응형

RunOnUiThread

  • handler 대신 개발자가 발생 스레드에서 일부 코드를 Main Thread에서 처리할 수 있도록 하는 메서드
isRunning = true
val thread1 = object : Thread() {
    override fun run() {
        super.run()
        while (isRunning) {
            // 개발자가 발생시킨 스레드에서 오래 걸리는 작업을 수행
            SystemClock.sleep(500)
            val now2 = System.currentTimeMillis()
            Log.d("test", "오래 걸리는 작업 : ${now2}")

            // 메인 스레드에서 처리
            runOnUiThread { // 고차함수로 처리하는 방법
                binding.textView.text = "runOnUiThread : ${now2}"
            }
            
            /*
            runOnUiThread(object : Thread(){
                override fun run() {
                    super.run()
                    binding.textView.text = "runOnUiThread : ${now2}"
                }
            })
            SystemClock.sleep(500)
            // 작업 여러개 가능
            runOnUiThread(object : Thread(){
                override fun run() {
                    super.run()
                    binding.textView2.text = "또다른 작업 : ${now2}"
                }
            })
             */

        }
    }
}
thread1.start()

 

반응형