728x90
반응형

1. ProgressDialog 를 표시할 클래스에서 Runnable 인터페이스를 확장한다.

public class 클래스명 extends Activity implements Runnable {

 

2. 인터넷 연결 작업이나 조금 시간이 걸리는 작업 호출 직전에 아래와 같이 ProgressDialog 표시 후 쓰레드 실행

     private ProgressDialog pd; // ProgressDialog 멤버 변수

       // ProgressDialog 표시

        pd = ProgressDialog.show(this, "Loading...", "페이지를 로드중입니다...", true, false);
       
        Thread thread = new Thread(this);
        thread.start();

 

3. 쓰레드 내에서 작업 실행

 public void run() {
     ..

     ..

    // 작업 실행

     ..

     ..


     handler.sendEmptyMessage(0);  // 쓰레드 내의 처리 완료시 핸들러 호출
 }
 

4. 클래스 내에 핸들러 등록
 private Handler handler = new Handler() {
     public void handleMessage(Message msg) {
         pd.dismiss();  // 메인쓰레드 상에 떠 있는 ProgressDialog 종료
     }
 };

 

 

  정리하자면 메인쓰레드에서 ProgressDialog 표시 후 쓰레드에서 실제 작업 실행. 쓰레드 작업 완료 후 핸들러를 통해

 메인쓰레드의 ProgressDialog 종료.

 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,