[문제 상황]
스레드를 사용하여 크롤링 데이터를 받아와서 UI의 텍스트를 수정하는 작업을 하려고 했다.
하지만, 크롤링 데이터를 받고 UI가 수정이 되지 않아, 실행 순서를 체크해 보았다.
실행 체크를 해보니 (UI 업데이트 -> 스레드 내부의 작업) 형태로 진행이 되었다.
1차 해결을 위해서 UI 업데이트를 스레드 내부에 넣어주었다. 하지만 오류가 발생하여서 구글링을 통해 찾아보았다.
그 결과 UI를 업데이트 하는 작업은 main 스레드 내부에서 작업이 이루어지고 별도의 스레드에서는 실행이 안된다고 한다.
그렇다면 이를 해결하는 방법이 무엇이 있을까?
[작업 스레드에서 UI 업데이트 요청하기]
[runONUiThread]
runOnUiThread는 UI스레드로 지정된 작업을 한다.
실제 구현한 코드를 보여주면. 다음과 같다
Thread(
Runnable {
/* 쓰레드 작업*/
runOnUiThread {
/* Ui 업데이트 작업 */
}
}
}
).start()
'안드로이드 > KOTLIN' 카테고리의 다른 글
Retrofit @Get, @Query 인코딩 문제 해결방법 (0) | 2023.02.01 |
---|---|
[Jitpack] 사용하기 (0) | 2023.01.17 |
Retrofit2 (0) | 2022.07.20 |
[KOTLIN] - PendingIntent (0) | 2022.07.16 |
Room 사용법 [kotlin] - android local database (0) | 2022.07.12 |