나는 다음과 같이 진행 상황을 보여 doInBackGround와 AsyncTask를 방법을 사용하여 얻을 방법 :업로드 진행
class UploadFile extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
showDialog(DIALOG_DOWNLOAD_PROGRESS);
}
@Override
protected String doInBackground(String... aurl) {
upload(ActionUrl, uploadFile, savepath, newName);
return null;
}
protected void onProgressUpdate(String... progress) {
mProgressDialog.setProgress(Integer.parseInt(progress[0]));
}
@Override
protected void onPostExecute(String unused) {
dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
}
}
upload(ActionUrl, uploadFile, savepath, newName);
방법은 같은 this입니다. 그리고 코드 아래 아래
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_DOWNLOAD_PROGRESS: //we set this to 0
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage("Downloading file...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.setMax(100);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.setCancelable(true);
mProgressDialog.show();
return mProgressDialog;
default:
return null;
}
}
그리고
가 전화 :private ProgressDialog mProgressDialog;
public static final int DIALOG_DOWNLOAD_PROGRESS = 0;
new UploadFile().execute("test");
그러나 진행 대화 상자는 항상 0 %로 표시하고 업데이트하지 않습니다. 업데이트하려면 수정하는 방법? "이 링크 모양에서 http://developer.android.com/guide/topics/ui/dialogs.html
:
또 다른 문제는 지금까지 업로드 한 바이트 수를 아는 방법입니다. – brian
http://stackoverflow.com/questions/6851024/i-need-know-how-much-bytes-has-been-uploaded-for-update-a-progress-bar-android <<이 게시물을 살펴보십시오. – Viking