Handler란?

장재용·2024년 5월 5일

Handler

액티비티의 ANR을 해결할 수 있는 방법 중 하나는 시간이 오래걸리는 업무를 위한 전용 쓰레드를 하나 더 만드는 것이다.
그러나, 이렇게 별도의 쓰레드를 만들면 ANR문제는 해결할 수 있지만, 다른 문제가 발생한다.
그건 바로, 별도의 쓰레드에서 뷰에 접근하게 되면 에러가 발생하는 것이다.

그럼 어떻게 해야하는걸까?
바로 핸들러를 이용해서 메인 쓰레드한테 의뢰해 뷰에 접근하면 된다.
이걸 Thread-Handler 구조라고 한다.

Handler의 메소드 정리

  • post()
    post() 메서드는 즉시 메시지를 큐에 게시한다.
    이것은 지정된 코드를 메인 스레드에서 즉시 실행하는 데 사용된다.

  • postDelayed()
    postDelayed() 메서드는 지정된 시간(밀리초) 후에 메시지를 큐에 게시한다. 따라서 이 메서드를 사용하면 지정된 시간이 지난 후에 코드가 실행된다.
    이것은 UI 업데이트와 같이 시간이 지연되는 작업을 처리하는 데 유용하다.
    즉, postDelayed()를 사용하면 코드를 지연시킬 수 있지만 post()는 즉시 실행된다.

profile
enjoy_error_message!

0개의 댓글