마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

로딩화면 질문 (splash activity 아님)

0 추천

현재 프로젝트가 초기에 Excel에서 정보를 읽어 DB를 생성하게 됩니다.

 

그런데 이 시간이 대략 10초정도 걸립니다.

 

얼핏 사용자입장에서 바라봤을 때는 어플이 멈춘줄 알것같습니다.

 

따라서 로딩화면을 보여주려고하는데 다음과 같은 ProgressDialog를 이용합니다.

 

...내용중략...

private ProgressDialog pDialog;

 

@Override

protected void onCreate(Bundle savedInstanceState) {

...내용중략...

pDialog = new ProgressDialog(this);

pDialog.setMessage("데이터베이스 생성중");

pDialog.setIndeterminate(true);

pDialog.setCancelable(false);

pDialog.show();

 

makeDatabase();

 

pDialog.dismiss();

startActivity(new Intent(this, MainDiffFrame.class));
finish();

}

private void makeDatabase(){
ArrayList<Store> storeList = getStoreListInExcel();
 
for( int i = 0; i < storeList.size(); i++ ){
Store store = storeList.get(i);
makeTable(store);
pDialog.setMessage("데이터베이스 생성중 " + (i+1) + "/" + (storeList.size()+1));
}
}
 
설명하면 다음과 같습니다.
 
다이얼로그띄움
-> 1개 db생성시마다 다이얼로그메시지 변경 (1/27개 생성... 2/27개 생성... 3/27개 생성... 이런식)
-> 총 db 27개 생성시 다이얼로그 종료
 
자, 문제는 제가 원하는데로 다이얼로그가 출력이 되지않습니다.
여전히 그대로 화면은 멈춘상태에서 db를 생성하고 27개 다 생성하면 마지막에 0.1초정도 다이얼로그가 뜨고 팍 사라집니다.
왜그럴까요? 해결책 제시부탁합니다 ㅠㅠ
껌냠냠 (570 포인트) 님이 2013년 10월 14일 질문

1개의 답변

0 추천
db생성 작업을 백그라운드 스레드에서 하세요.
익명사용자 님이 2013년 10월 14일 답변
...