안드로이드 개발 질문/답변
(글 수 45,052)
onResume 과 onPause상태 사이가 Running Activity라고 알고있습니다.
그럼 Running Activity 상태에 사용자가 보고 있는 화면인데요, 이때 자동으로 Dialog를 띄워주고 소멸하는것을 넣고 싶은데요 아래 코드로는 안되는것 같습니다.
실행해 보면 activity 뜨기전에 5초간 멈춰있다가 progressDialog는 소멸된 상태라 보이지가 않네요.
또 onCreate에서 띄워준다 하더라도 실제 검사동작과 progressDialog를 닫아주는 logic는 어디에 넣어야지 원하는걸 얻을수 있을까요...이래저래 다 해봐도 안됩니다...ㅠ.ㅠ
그럼 Running Activity 상태에 사용자가 보고 있는 화면인데요, 이때 자동으로 Dialog를 띄워주고 소멸하는것을 넣고 싶은데요 아래 코드로는 안되는것 같습니다.
실행해 보면 activity 뜨기전에 5초간 멈춰있다가 progressDialog는 소멸된 상태라 보이지가 않네요.
또 onCreate에서 띄워준다 하더라도 실제 검사동작과 progressDialog를 닫아주는 logic는 어디에 넣어야지 원하는걸 얻을수 있을까요...이래저래 다 해봐도 안됩니다...ㅠ.ㅠ
/* (non-Javadoc) * @see android.app.Activity#onResume() */ @Override protected void onResume() {
// TODO Auto-generated method stub super.onResume(); Log.d("SerchMain","onResume CALL!!"); Log.d("SerchMain", "onCreateDialog CALL"); dlg = onCreateDialog(ID_PROGRESS_BAR); Log.d("SerchMain", "onCreateDialog CALL End"); dlg.show(); try{ Thread.sleep(5000); }catch(Exception e){ } //dialog end if( dlg!= null && dlg.isShowing() ) { dlg.dismiss(); removeDialog(ID_PROGRESS_BAR); } }
2010.04.19 10:25:04
onResume 등에서 sleep 을 하시면 메인 스레드 자체가 Block 됨으로 문제가 됩니다. 지금과 같이 메인스레드와는 별개로 비동기적으로 작업을 수행하실 경우, Handler, Thread, AsyncTask 등등... 여러가지 클래스를 이용할 수 있습니다. 위의 경우는 간단하게 Handler를 이용해서 아래와 같이 구현 할 수 있습니다.
Handler handler = new Handler();
handler.postDelayed(new Runnable(){
public void run() {
dig.dismiss();
}
}, 5000);
자세한 내용은 http://www.androidpub.com/57470 나 http://blog.naver.com/huewu 를 참고해 보세요.