# 2021/12/20

silmxmail·2022년 1월 7일
0

1일1문서

목록 보기
8/17

Safe delay in Android Views: goodbye Handlers, Hello Coroutines!

딜레이를 줄때 핸들러 대신 코루틴으로 해결하자~

기존에 핸드러를 이용하여 딜레이를 줄때는 다음과 같이 사용했다.

init{
		handler.postDelayed({action},300L)

			or

		postDelayed({action},300L)

이와같은 사용은 Deprecated되지 않았으며 그렇게 복잡하지도 않다. 하지만 그 내부에서 발생하는 작업들은 유용하지않다.

핸들러는 메인 쓰레드와 연관되어있다.

즉, 딜레이를 실행할때마다 새로운 Runnable객체를 생성하고 큐에 추가해주어야한다.
이건 큐에 담긴 딜레이가 실행될때 뷰를 종료하거나 detach할때도 역시 동작하므로 에러를 발생시킬수 있다.
(→ 이걸 해결하기위해 보통 핸들러를 사용할때 detach, destroy 라이프사이클에서 핸들러를 제거한다.
handler.removeCallbacks~~)


코루틴을 사용하자~(LifeCycle을 알고있는!)

현재 라이프사이클에 액세스하여 새 코루틴을 시작하여 메서드가 진행되기 전에 딜레이를 사용할수 있다.

profile
러닝커브를 따라서 등반중입니다.

0개의 댓글