2013. 4. 15. 15:53

안드로이드 핸들러(Handler)를 이용한 프로그레스 바(Progress Bar) 처리

앞서 쓰레드와 핸들러를 이용한 메시징과 작업 스케줄링을 살펴봤습니다. 이것과 같은 개념이지만 이걸 프로그레스 바로도 처리할 수 있습니다. 이때는 진행과정에 해당하는 메시지를 따로 보여줄 필요는 없습니다. 프로그레스 바 자체가 진행중이라는 걸 의미하니까요.

프로그레스 바는 말 그대로 막대 바(bar) 형태와 원형으로 돌아가는 스피너(spinner) 두 가지가 있는데 여기서는 스피너를 이용합니다. 쓰레드와 핸들러가 필요하고 프로그레스 바는 `프로그레스 다이얼로그`입니다.

쓰레드를 시작시켜 주는 부분 바로 위에 프로그레스 다이얼로그를 위치시킵니다. setProgressStyle에서 STYLE_SPINNER로 해야 원형이 됩니다. 참고로 막대 바 형태는 STYLE_HORIZONTAL입니다.

일정시간이 지나 프로그레스 다이얼로그가 사라진 후 처리될 코드들은 handleMessage(Message msg) 메써드의 progressDialog.dismiss() ; 다음에 넣어줍니다.

그렇게 앱이 실행된 모습입니다. 이전과 똑같이 처음엔 아무것도 나타나지 않습니다.

  

여기서 버튼을 누르면 프로그레스 다이얼로그가 뜨면서 진행중임을 나타냅니다.

잠시 후 결과가 나타납니다.