은 당신이 뭔가를 할 수 있습니다 ..
public static final int DIALOG_DOWNLOAD_PROGRESS = 0;
private ProgressDialog mProgressDialog;
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_DOWNLOAD_PROGRESS:
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage("waiting 5 minutes..");
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.setCancelable(false);
mProgressDialog.show();
return mProgressDialog;
default:
return null;
}
}
그런 다음 진행 상황을 업데이트 할 비동기 작업을 쓰기 ... 이것은 당신의 목적을 해결해야하며 늘 심지어 UI 트레드을 차단
private class DownloadZipFileTask extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
showDialog(DIALOG_DOWNLOAD_PROGRESS);
}
@Override
protected String doInBackground(String... urls) {
//Copy you logic to calculate progress and call
publishProgress("" + progress);
}
protected void onProgressUpdate(String... progress) {
mProgressDialog.setProgress(Integer.parseInt(progress[0]));
}
@Override
protected void onPostExecute(String result) {
dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
}
}
..
'setProgress()'를 사용하여 원하는대로 진행률을 설정할 수 있습니다. 업데이트 할 때마다 전화하십시오. – Geobits
설정된 시간이 가짜 진행 표시 줄을 만드는 경우 ... 마지막 5 분의 GIF 일 수 있습니다. – NightSkyCode
'AsyncTask'에 대한 문서에서 ... ** "AsyncTasks는 짧은 작업 (최대 몇 초)에 이상적으로 사용되어야합니다."** - 실제로 5 분의 AsyncTask를 실행해서는 안됩니다. – Squonk