android - Google Play 服务任务 API : continueWith vs continueWithTask

标签 android firebase

这是关于 Task .

task.continueWith()task.continueWithTask() 有什么区别,你能分别举个例子吗?

最佳答案

continueWith 之间的主要区别和 continueWithTaskContinuation 的通用类型之一你传递给它。

您可以将 Continuation 视为将某种输入类型转换为某种输出类型的东西。如果你定义一个 Continuation<IN, OUT> , 其中IN是传递给其 then 的输入类型通过 Task<IN> 的方法, 和 OUT是方法返回的类型。

调用continueWith时,你传递一个 Continuation<IN, OUT> , 和 then方法应计算并返回 OUT给定 Task<IN> 的值值作为输入。如果您没有为转换做任何阻塞工作,例如将整数数组减少为其元素的总和或计算字符串中的单词数,您可能会选择这样做。

调用continueWithTask时,你传递一个 Continuation<IN, Task<OUT>> , 和 then方法预计返回 Task<OUT>最终生成 OUT值,给定 IN值作为输入。如果您能够将转换工作委派给现有的可重用任务,则可以选择此选项。

实际上,您不需要选择一个或另一个来完成您的工作。这是一个偏好风格的问题,或者如果你有一个不错的 Task准备好委托(delegate)您的谈话而不是 Continuation .通常,如果您有一个要链接在一起的转换管道,您只会使用 Continuations。

此处的 javadoc 链接显示了一些 Continuations 示例。此外,要了解更多信息,您可以在 part three 中阅读它们。我的博客系列。公平地说,continueWithTask是任务 API 的唯一部分,我不会在该系列的任何地方直接讨论,主要是因为从概念上讲,它与 continueWith 没有太大区别。 .

关于android - Google Play 服务任务 API : continueWith vs continueWithTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40161333/

相关文章:

android - CPU和芯片组有什么区别?

android - Firebase Auth 返回一个神秘的错误 uid

javascript - Firebase:创建命名子引用

c# - 带有 Facebook 身份验证的 Xamarin.Droid Firebase

ios - 向 Firebase 中的其他用户发送预先编写的应用内用户通知

java - sendMultipartTextMessage 作为多条 SMS 消息发送?

Android getParent() 为 null 但已设置 parentActivityName

java - ANDROID (Java) - 页面加载完成后的进度条可见性不起作用?

android - 整个屏幕覆盖

node.js - 使用 GetStream.io 和 firebase 正确的用户创建流程?