1. RunOnUiThread란
- RunOnUiThread 메서드는 개발자가 발생시킨 일반 Thread에서 코드 일부를 Main Thread가 처리하도록 하는 메서드이다.
- JAVA에서는 메서드로 제공되나 Kotlin에서는 람다식으로 제공되고 있으므로 작성하는 것이 간편하다.
- 전의 내용에서는 네트워크나 5초 이상 걸리는 작업들은 Main Thread에서 작업이 안되기 때문에 일반 Thread에서 작업하다가 화면에 대한 처리가 필요하면 Handler나 AsyncTask를 이용하는 방법으로 화면 처리만 Main Thread에게 맡겼다.
- 하지만, 둘 다 클래스를 상속받아야하므로 작업량이 많아졌는데, RunOnUiThread메서드를 사용하면 그 때 그 때 원할 때 마다 Main Thread에 작업을 시킬 수 있다.
class MainActivity : AppCompatActivity() {
var isRunning = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener { view ->
var time = System.currentTimeMillis()
textView.text = "버튼 클릭 : ${time}"
}
isRunning = true
var thread = ThreadClass()
thread.start()
}
inner class ThreadClass:Thread()
{
override fun run() {
while (isRunning) {
SystemClock.sleep(100)
var time = System.currentTimeMillis()
Log.d("test1", "쓰레드 : ${time}")
// 1. 일반 Thread이기 때문에 전OS에서 화면 처리가 가능하지 않다. 이 경우에! runOnUiThread를 넣는다.
runOnUiThread {
textView2.text = " ${time}"
}
}
}
}
override fun onDestroy() {
super.onDestroy()
isRunning = false
}
}
'Deperecated > Android_강의' 카테고리의 다른 글
안드로이드 - OnResultActivity (0) | 2020.02.18 |
---|---|
안드로이드 - 안드로이드 4대 구성 요소 - Activity 실행하기 (0) | 2020.02.18 |
안드로이드 - AsyncTask (0) | 2020.02.17 |
안드로이드 - Handler를 통한 화면 처리 (0) | 2020.02.17 |
안드로이드 - Handler를 이용한 반복 작업 (0) | 2020.02.17 |