개발/안드로이드(Android-Kotlin)

Android thread

개복치 개발자 2019. 6. 21. 22:17

 

 안드로이드 개발을 하면서, 보게 되는 것 중 하나가 쓰레드 입니다.

 

 쓰레드가 뭘까 하면

 

 철수가 글쓰기를 하고 있을 때 민수가 그림그리기를 해라. 라고 지정해주는 것입니다.

 

 이렇게 말하면 이해가 조금 안될 수도 있는데

 

 안드로이드가 철수라고 생각하면, 안드로이드가 앱의 UI를 그려주고 있을 때, 다른 애(민수)가 나와서 네트워크 호출 같은 부분을 처리해주는 것입니다.

 

 그렇다면 안드로이드가 UI그리기, 네트워크 호출을 모두 다 한개의 프로세스가 할 때 보다 효율적인 이유가

 

 한개의 프로세스가 돌아가는 동안 다른 프로세스도 돌아가고 있기 때문에

 

 모든 프로세스를 기다릴 필요 없이, 사용자에게 빨리 화면을 보여줄 수 있습니다.

 

 자 그렇다면, 코틀린에서 예제를 한번 쳐볼까요?

 

 여기 보이는 thread(start = true){} 부분이 쓰레드인데 안의 코드를 설명하면

 

 

 

 //현재 날짜를 받아와서

 var calendar = Calendar.getInstance()

 //원하는 포맷으로 변경하여

 var format = SimpleDateFormat("HH:mm:ss")

 //strTime에 넣어준다
 val strTime = format.format(calendar.time)

 

 //출력
 Log.e(TAG, strTime.toString())

 

 

 

 보시는 것 처럼 1초 단위로 시간이 찍히는 것을 볼 수 있습니다.

 

 thread의 결과를 UI에 뿌려줄려면 Handler가 필요한데, 따로 Handler를 만들어서 뿌려주면 됩니다.

 

 

 

 

 

 

 

'개발 > 안드로이드(Android-Kotlin)' 카테고리의 다른 글

Retrofit, JSON, GSON, OkHttp, API 란  (0) 2019.07.31
전화하기 버튼  (0) 2019.07.25
Andorid Audio 파일 재생  (0) 2019.07.25
Android background radius  (0) 2019.06.25
레이아웃 절반 등분하기  (0) 2019.06.25