活动暂停后ProgressDialog无法更新进度

时间:2018-12-10 15:30:57

标签: android

我是Android的新手,我制作了一个应用程序,其中一次要从Firebase下载多个图像。为此,我创建了一个download()方法并显示进度对话框。我正在OnCompleteListener中更新进度更新。一切正常,但是当我通过点击主页按钮将我的应用程序置于后台并再次恢复运行时,progressDialog将不会更新其更新,下载文件时也不会dismiss()

这是我在DownloadTask类中的下载方法。

List<FileDownloadTask> downloadTaskList = new ArrayList<>();
protected void download() throws IOException, JSONException {
        setDownloadProgressDialoag();
        imageList = image.getImages();
        File file = new File(context.getExternalFilesDir(null), "Images");
        if (!file.exists()) {
            file.mkdir();
        }
        for (Image image : imageList) {
            String url = image.getImageUrl();
            File imageFile = new File(file, i + "_" + image.getName() + ".jpg");
            if (!imageFile.exists()) {
                downloadRef = FirebaseStorage.getInstance().getReferenceFromUrl(url);
                    FileDownloadTask task = downloadRef.getFile(imageFile);
                    downloadTaskList.add(task);
                    task.addOnCompleteListener(new OnCompleteListener<FileDownloadTask.TaskSnapshot>() {
                        @Override
                        public void onComplete(@NonNull Task<FileDownloadTask.TaskSnapshot> task) {
                            downloadProgressDialoag.incrementProgressBy(1);
                            downloadTaskList.remove(task);
                        }
                    }).addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {

                        }
                    });
                    i++;
                }
        }
}

这是我的进度对话框。这里downloadProgressDialoag在DownloadTask类中是私有定义的。

private void setDownloadProgressDialoag() {
        downloadProgressDialoag = new ProgressDialog(context, R.style.PackLoaderDialog);
        downloadProgressDialoag.setTitle(context.getString(R.string.downloading));
        downloadProgressDialoag.setMax(stickerPack.noOfSticker);
        downloadProgressDialoag.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        downloadProgressDialoag.setCancelable(false);
        downloadProgressDialoag.show();
}

当我单击下载按钮时,我正在主要活动中调用此方法

0 个答案:

没有答案