我正在制作一个应用程序,该应用程序将同时从firebase中下载大量图像,并进行下载并显示进度对话框,并在对话框中设置取消按钮。 我想在用户按下下载按钮时取消下载。我不知道该怎么办。
请任何人帮助。
下载功能。
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()) {
StorageReference downloadRef = FirebaseStorage.getInstance().getReferenceFromUrl(url);
downloadRef.getFile(imageFile).addOnCompleteListener(new OnCompleteListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<FileDownloadTask.TaskSnapshot> task) {
downloadProgressDialoag.incrementProgressBy(1);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
});
i++;
}
}
}
进度对话框。
private void setDownloadProgressDialoag() {
downloadProgressDialoag = new ProgressDialog(context, R.style.PackLoaderDialog);
downloadProgressDialoag.setTitle("Downloading Images...");
downloadProgressDialoag.setMax(Image.noOfImage);
downloadProgressDialoag.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
downloadProgressDialoag.setCancelable(false);
downloadProgressDialoag.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
downloadProgressDialoag.show();
}
我不知道在OnClickListener
中应该怎么做。