Firebase Android:如何取消下载?

Firebase Android:如何取消下载?,第1张

概述如何取消从Firebase的下载任务?每当我单击ProgressDialog上的某个位置时,我都想取消下载.这是我的下载活动ExamesActivity.java所在的部分.看起来像://DownloadtheFileonButton(Download)click:bDownload.setOnClickListener(newView.OnClickListener(){

如何取消从Firebase的下载任务?

每当我单击ProgressDialog上的某个位置时,我都想取消下载.

这是我的下载活动ExamesActivity.java所在的部分.看起来像:

//Download the file on button(Download) click:        bDownload.setonClickListener(new VIEw.OnClickListener() {            @OverrIDe            public voID onClick(VIEw v) {                //Initalizing teh Spinner-to-String functions:                Grade = spClasse.getSelectedItem().toString();                Type = spEpoca.getSelectedItem().toString();                Subject = spdisciplina.getSelectedItem().toString();                Year = spAno.getSelectedItem().toString();                //Download the file:                //First Check if ON the Spinner, everything is choosen. It should be. If not, show error Toast.                if (Grade.equals("...") | Type.equals("...") | disciplina.equals("...") | Year.equals("..."){                    //Show the The Error Toast:                    Toast.makeText(ExamesActivity.this, "everything shall be choosen", Toast.LENGTH_SHORT).show();                } else {                                          //What the dir would look like: "Subject/Grade/Year-Type.extension"                    pdfRef = mStorageRef.child(Subject + "/" + Grade + "/" + Year + "-" + Type + ".pdf");                    file root = androID.os.Environment.getExternalStorageDirectory();                    file dir = new file(root.getabsolutePath() + "/Exams-App/");                    //Show the ProgressDialog while downloading:                    progressDialog.show();                    if (!dir.exists()) {                        dir.mkdirs();                    }                    localfile = new file(dir, Subject + "-" + Year + "-" + Grade + "-" + Type + ".pdf");                    pdfRef.getfile(localfile).addOnSuccessListener(new OnSuccessListener<fileDownloadTask.TaskSnapshot>() {                        @OverrIDe                        public voID onSuccess(fileDownloadTask.TaskSnapshot taskSnapshot) {                            // Local temp file has been created                            progressDialog.dismiss();                            Toast.makeText(ExamesActivity.this, "Exam was successfully downloaded!️",  Toast.LENGTH_SHORT).show();                        }                    }).addOnFailureListener(new OnFailureListener() {                        @OverrIDe                        public voID onFailure(@NonNull Exception exception) {                            // Handle any errors                            progressDialog.dismiss();                            Toast.makeText(ExamesActivity.this, "Exam not found on the server.", Toast.LENGTH_LONG).show();                        }                    }).addOnProgressListener(new OnProgressListener<fileDownloadTask.TaskSnapshot>() {                        @OverrIDe                        public voID onProgress(fileDownloadTask.TaskSnapshot taskSnapshot) {                            //Some math to get the Percentage of the Download :)                            double progresspercentage = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();                            double size = (taskSnapshot.getTotalByteCount()) / (1000000);                            progressDialog.setMessage("pdf Size: " + (size) + " - " + ((int) progresspercentage) + "% - Click away to cancel the download.");                        }                    });                }            }        });

解决方法:

pdfRef.[getfile] [1](localfile)返回FileDownloadTask.此对象是CancellableTask的子类,它具有cancel()方法.您将需要保留对此任务的引用,并调用其cancel方法来取消下载.

总结

以上是内存溢出为你收集整理的Firebase Android:如何取消下载?全部内容,希望文章能够帮你解决Firebase Android:如何取消下载?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1120959.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存