2013. 4. 15. 16:19

안드로이드 루퍼(Looper)를 이용한 프로그레스 바(Progress Bar) 처리

핸들러 대신 루퍼를 이용해서 똑같이 처리해줄 수도 있습니다. 쓰레드 하나도 이해하기 힘든데 여기에 핸들러가 튀어나오더니 이제는 무슨 영화 제목도 아니고, 루퍼까지...

그러나 알고 보면 핸들러로 처리한 부분을 2~3줄로 간단하게 대체할 수 있는 게 루퍼라고 이해하면 쉬울듯 합니다. 핸들러에서 루퍼로 바뀐 코드는 아래와 같습니다.

여기서는 프로그레스 다이얼로그를 쓰레드 부분인 progressThread 클래스에 위치시켰습니다. 프로그레스 다이얼로그는 view.getContext() 때문에 액티비티를 파라미터로 넘겨주고 쓰레드 클래스에서 context로 받아줍니다.

실행결과는 핸들러로 처리했을 때와 동일합니다. 막상 두 가지를 해보니까 루퍼는 핸들러에 비해 유연성이 떨어지는 면이 있어서 메시징이나 세밀한 처리를 하기 위해서는 핸들러를 권장합니다.