Android

[팁] ProgressDialog 표시하기

nineDeveloper 2014. 5. 13. 18:22
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
반응형