안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요
if (move==true)
{
ProgressDialog progressDialog;
progressDialog = new ProgressDialog(getContext());
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage("Loading. Please wait...");
progressDialog.setCancelable(false);
progressDialog.show();
DrawCanvas();
progressDialog.dismiss();
}
move 가 true 일때마다 ProgressDialog 들 띄우고 싶습니다...
DrawCanvas();
가 실행 되고 나면
ProgressDialog 를 종료 하고.
근데 DrawCanvas(); 는 실행이 되는데
ProgressDialog .show() 가 실행이 되지 않습니다.
도와주세요
if (move==true)
{
ProgressDialog progressDialog;
progressDialog = new ProgressDialog(getContext());
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage("Loading. Please wait...");
progressDialog.setCancelable(false);
progressDialog.show();
DrawCanvas();
progressDialog.dismiss();
}
move 가 true 일때마다 ProgressDialog 들 띄우고 싶습니다...
DrawCanvas();
가 실행 되고 나면
ProgressDialog 를 종료 하고.
근데 DrawCanvas(); 는 실행이 되는데
ProgressDialog .show() 가 실행이 되지 않습니다.
도와주세요
2010.12.15 14:37:31
프로그레스바와 메인쓰레드의 작업은 병할할 수 없을겁니다..
시간이 걸리는 계산 로직이나 네트웍작업은 스레드로 빼야하지만 스레드에선 UI작업을 할 수 없죠...
drawcanvas 에서는 어떤 작업을 하나요.. 데이터를 세팅하고 그리는 작업을 하는거라면..
progressDialog.show();
스레드 생성...{
Loading. Please wait...(이 부분에서 계산하는 로직이나 데이터에 값을 셋팅하는 작업
}
작업이 완료되면 핸들러나 런어블을 이용해서 메인스레드로 메시지를 보내고..
그곳에서 progressDialog.dismiss();
DrawCanvas(); 실행하면 되겠죠..
시간이 걸리는 계산 로직이나 네트웍작업은 스레드로 빼야하지만 스레드에선 UI작업을 할 수 없죠...
drawcanvas 에서는 어떤 작업을 하나요.. 데이터를 세팅하고 그리는 작업을 하는거라면..
progressDialog.show();
스레드 생성...{
Loading. Please wait...(이 부분에서 계산하는 로직이나 데이터에 값을 셋팅하는 작업
}
작업이 완료되면 핸들러나 런어블을 이용해서 메인스레드로 메시지를 보내고..
그곳에서 progressDialog.dismiss();
DrawCanvas(); 실행하면 되겠죠..




타이머로 0.2초정도 후에 drawcanvas 실행넣고
0.5초후에 dismiss 넣어보세요.. 실행되나..