这是我的程序流程:
我可以创建一个学习会话,在此会话中,用户可以流式传输视频,和/或下载附件,和/或以多项选择格式回答问题。
因此,在一个会话中,它可以包含视频和/或文件和/或问题。
在创建会话的过程中,我必须完成所有视频和/或文件的上传任务,并完成所有数据库任务保存该会话的问题,然后才能将会话保存到数据库中。在这种情况下,我使用类似这样的东西
Tasks.whenAll(listTask)
,在其中添加onCompleteListener
到最终任务,最终将会话保存到数据库。几乎所有工作都按预期工作,已保存问题,已上传视频,但
UploadTask
上传视频后返回的问题存在问题。在我的Session
课堂上,我有videoUrl
一个包含视频网址的字段。为了获取视频的 url,我必须添加onCompleteListener
到 myUploadTask
,从任务结果中获取 url 并将 url 保存在我的类实例中。但是,视频 url 永远不会保存到数据库中,因为onCompleteListener
最终任务首先被调用。
我的问题是,如何执行 Tasks.whenAll(listTask),当 listTask 中的所有任务都完成时,它们的 onCompleteListener 也完成了?