Android/Etc.2010.12.17 14:06
네트워크로부터 데이터를 받아오거나 데이터베이스로부터 대용량의 정보를 받아올때

기다려달라는 메시지가 팝업으로 출력되고 완료시 사라지는것을 본적이 있을것이다.

ProgressDialog와 Thread, Handler를 사용하여 구성한다.

public class Test extends Activity {
    // Called when the activity is first created.
	private ProgressDialog mProgressDialog;
	private final int PROGRESS_DIALOG_COMPLET = 0;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
		mProgressDialog = ProgressDialog.show(Test.this, "title",
				"content", false); // title에는 Dialog의 제목을 content에는 내용을 입력
		
		Thread thread = new Thread(new Runnable(){
			public void run(){
				//ProgressDialog가 돌아가는동안 thread로 작업할 내용 입력

				mHandler.sendEmptyMessage(PROGRESS_DIALOG_COMPLET );
				//thread 작업이 완료 되면 mHandler에 0값 전달
			}
		});
		thread.start();
    }
    
	private Handler mHandler = new Handler() {
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case PROGRESS_DIALOG_COMPLET :
				mProgressDialog.dismiss(); // ProgressDialog 종료
				// ProgressDialog가 종료되고 작업할 내용 입력

				break;
			default:
				break;
			}
		}
	};

'Android > Etc.' 카테고리의 다른 글

animated GIF를 대체 AnimationDrawable(FrameAnimation)  (0) 2010.12.17
ProgressDialog를 이용한 Loading 구성  (0) 2010.12.17
App 종료  (0) 2010.11.25
SDCARD의 경로 가져오기  (0) 2010.11.25
앱에서 다른 앱을 실행  (0) 2010.11.25
Activity Lifecycle  (0) 2010.07.13
Posted by 회색꿈