2017-05-11 7 views
0

나는 deleteImages를 실행하는 데 약간의 시간이 걸리는 프로세스가 있습니다. 이 작업이 실행되는 동안 UI 스레드를 차단하고 싶습니다. AlertDialog를 만들어서 deleteImages가 시작되기 전에 보여 주려고 했으므로 설명 할 수없는 정지 시간이되지 않습니다. 그러나 deleteImages를 호출하기 전에 dialog.show()를 호출하더라도 대화 상자는 deleteImages가 완료된 후에 만 ​​표시됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?AlertDialog 지연 표시

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
LayoutInflater inflater = getLayoutInflater(); 
View content = inflater.inflate(R.layout.deletion_dialog, null); 
builder.setView(content); 

AlertDialog dialog = builder.create(); 
dialog.show(); 

deleteImages(dataStringsToDelete); 
+1

당신이 AsyncTask를 사용하려고 했습니까? –

+0

예, AsyncTask with progressDialog .... – Opiatefuchs

+1

deleteImages() 메소드를 보여주세요 ... – Opiatefuchs

답변

0

실행 해보십시오 당신의 당신의 비동기 작업에서 deleteImages(dataStringsToDelete); 숨길 이와 같이 OnPostExecute()

에 대화 :

new AsyncTask<Void, Void, Void> { 
protected Long doInBackground(Void... void) { 

    deleteImages(dataStringsToDelete); 

} 

protected void onPostExecute(Long result) { 
    dialog.dismiss(); 
} 
}.execute()