首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对话框下载进度在第二次下载尝试时始终显示为100%

对话框下载进度在第二次下载尝试时始终显示为100%
EN

Stack Overflow用户
提问于 2012-03-20 09:29:25
回答 2查看 562关注 0票数 0

我需要帮助,我的DIALOG_DOWNLOAD_PROGRESS总是在onPreExecute()上显示100% (第二次下载尝试)。如何让它从第二次尝试下载时的0%开始。这里需要帮助。谢谢

代码语言:javascript
复制
@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case DIALOG_DOWNLOAD_PROGRESS:
        mProgressDialog = new ProgressDialog(this);
        mProgressDialog.setMessage("Downloading file..");
        mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        mProgressDialog.setCancelable(true);
        mProgressDialog.show();
        return mProgressDialog;
    default:

        return null;
    }
}

类DownloadFileAsync扩展了AsyncTask {

代码语言:javascript
复制
@Override
protected void onPreExecute() {
    super.onPreExecute();
    showDialog(DIALOG_DOWNLOAD_PROGRESS);
}

……

代码语言:javascript
复制
}
protected void onProgressUpdate(String... progress) {
     Log.d("ANDRO_ASYNC",progress[0]);
     mProgressDialog.setProgress(Integer.parseInt(progress[0]));

}

@Override
protected void onPostExecute(String unused) {
    dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-20 09:39:51

由于创建对话框只调用一次onCreateDialog,因此您必须在onPrepareDialog中重置对话框,每次显示对话框之前都会调用该对话框。

代码语言:javascript
复制
@Override
protected void onPrepareDialog(int id, Dialog dialog, Bundle args) 
    if (id == DIALOG_DOWNLOAD_PROGRESS)
        mProgressDialog.setProgress(0);
}
票数 0
EN

Stack Overflow用户

发布于 2013-06-22 03:36:45

代码语言:javascript
复制
protected Dialog onCreateDialog(int id){

        switch(id){

            case 0:

                _progressDialog = new ProgressDialog(null);


                _progressDialog.setTitle("Downloading files..");

                _progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

                _progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Hide", new DialogInterface.OnClickListener() {



                @Override

                public void onClick(DialogInterface dialog, int which) {

                        Log.d(TAG, "hide");

                    }

                });

                _progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {

                        @Override

                    public void onClick(DialogInterface dialog, int which) {

                        Log.d(TAG, "cancel");

                        cancelLoad();

                    }

                        private void cancelLoad() {
                            // TODO Auto-generated method stub

                        }

                });

        }

        return _progressDialog;

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9780277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档