(순수 자바의 방법)
- java.lang.Thread 클래스, java.lang.Runnable 클래스 중 둘 중 하나를 상속받아서 사용한다.
//스레드에서 하고 싶은일은 Runnable에 담고 얘를 Thread에 넣어주면 됨
val runnable: Runnable = object : Runnable{
override fun run() {
Log.d("thread","스레드가 만들어짐!")
}
}
//스레드를 만들기
val thread : Thread = Thread(runnable)
//스레드를 실행 시킴!
thread.start()
위와 같이 작성한 코드를 더 줄여서 쓸 수도 있다.
//람다x 버전
Thread(object :Runnable{
override fun run() {
Log.d("thread-1","Thread is made 2!")
}
}).start()
//람다 버전
Thread(Runnable {
Log.d("thread-1","Thread is made 3!")
}).start()
💡 만약 Main Thread가 아닌 Thread에서 UI 접근하려면
runOnUiThread 내에서 접근 해야 한다.
runOnUiThread {
//UI에 접근하려는 경우
//main스레드가 아니면 UI접근이 안되니 이렇게 접근해야함!
btn.setBackgroundColor("#FFFFFF")
}