【问题标题】:Canceling an Firebase Storage UploadTask取消 Firebase 存储上传任务
【发布时间】:2022-01-10 02:24:41
【问题描述】:

我的用例很简单。在后台上传多张图片并在通知中显示进度。现在我想在用户按下通知中的取消按钮时取消此任务。由于上传任务无法序列化,那么我应该如何取消该特定上传任务?

【问题讨论】:

    标签: java android firebase google-cloud-platform firebase-storage


    【解决方案1】:

    在后台上传多张图片并在通知中显示进度。

    对于这些操作,我假设您使用的代码行与此类似:

    UploadTask uploadTask = storageReference.putFile(filePath);
    

    现在我想在用户按下通知中的取消按钮时取消此任务。

    如上面的代码行所示,在StorageReference 对象上调用的putFile(Uri uri) 方法返回一个UploadTask 类型的对象。这个类是StorageTask的子类,从术语上讲是ControllableTask的子类,也是CancellableTask的子类。

    由于这些类之间有继承关系,可以简单的调用CancelableTask的cancel()方法:

    尝试取消任务。

    为了取消任务。在代码中应该是这样的:

    uploadTask.cancel();
    

    【讨论】:

    • 谢谢亚历克斯。但这正是我所关心的。我将如何获得需要取消的这个特定 uploadTask 的实例。我需要通过意图传递它。有点像这样:intent.putExtra("task", (Parcelable) uploadTask);。但是uploadTask 不是Parcelable 也不是Serializable。 @Alex_Mamo
    • 正如您已经提到的,您不能通过 Intent 传递 UploadTask 的实例,因为它既不是 Parcelable 也不是 Serializable。你能做的就是把它变成static,或者把那个对象转换成Parcelable,对吧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 2018-12-21
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 2016-03-18
    相关资源
    最近更新 更多