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 종료.
'Android' 카테고리의 다른 글
[팁] ProgressDialog 표시하기 2 - 진행바 (0) | 2014.05.13 |
---|---|
[팁] ProgressDialog 표시하기 - 예제 소스 (0) | 2014.05.13 |
[안드로이드예제] HttpClient 의 HttpPost 방식을 사용한 로그인 처리예제 (0) | 2013.10.27 |