안규 공부방

Android > progressDialog

등록일 : 2017-07-06 17:29 조회수 : 93,369


 어플리케이션이 동작하는 도중에 긴 시간의 I/O 작업이라던지 사용자로부터 확인 명령을 받아야 할때와 같은 경우
현재 엑티비티 상에 새로운 다이얼로그를 표시할 필요가 있다.

ProgressDialog는 I/O 작업과 같이 잠시 엑티비이의 상태를 동결시킬 때 사용되고, AlertDialog는 사용자로부터 확인 명령을 받을 때 사용된다.
 
	public class MainActivity extends Activity {
		ProgressDialog progressDialog; // ProgressDialog
		
		Button btShowDialog;
		Button btAlert;

		public static int TIME_OUT = 1001;

		protected void onCreate(Bundle savedInstanceState) {
			super.onCreate(savedInstanceState);
			setContentView(R.layout.activity_main);

			btShowDialog = (Button) findViewById(R.id.btShowDialog);
			btAlert = (Button) findViewById(R.id.btShowAlert);
			alertDialog = new AlertDialog.Builder(this);
		}

		public void onClick(View v) {

			// ShowDialog 버튼일 클릭될 때 호출
			if (v.getId() == btShowDialog.getId()) {
				// ProgressDialog 생성
				progressDialog = ProgressDialog.show(this, "Title", "Message");

				// 정해진 시간 후에는 타임아웃 발생을 위해 핸들러로 메시지 전달
				mHandler.sendEmptyMessageDelayed(TIME_OUT, 2000);
			}
		}

		Handler mHandler = new Handler() {
			public void handleMessage(Message msg) {
				if (msg.what == TIME_OUT) {		// 타임아웃이 발생하면
					progressDialog.dismiss();	// ProgressDialog를 종료
				}
			}
		};
	}
	


ProgressDialog 사용법

ProgressDialog의 생성 및 표시는 은 라인 27번과 같이 처리한다. 또한 표시된 ProgressDialog가 사라질 수 있도록 핸들러로 지연된 메시지를 던진다(라인 30).

핸들러는 지연된 메시지를 받아서 라인 63,64처럼 팝업되어 있는 ProgressDialog를 삭제한다.


 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.