- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是关于 Task .
task.continueWith()
和 task.continueWithTask()
有什么区别,你能分别举个例子吗?
最佳答案
continueWith 之间的主要区别和 continueWithTask是 Continuation 的通用类型之一你传递给它。
您可以将 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/
我在所有三种方法上都收到此警告,我尝试在 stackoverflow 中搜索解决方案,但无法弄清楚可用的解决方案如何应用于我的情况。尽管代码按预期工作正常,但代码块以黄色突出显示,并且似乎不断要求注意
错误:无法从 TContinuationResult、TResult 为类型变量的静态上下文中引用非静态方法 continueWithTask(Continuation>): ** 这是 contin
除了同步与异步之外,它们文档中的差异让我感到困惑。他们的例子 github page继续看起来仍然被同步调用。 continueWith() 向此任务添加一个同步延续,返回一个在延续运行完成后完成的新
这是关于 Task . task.continueWith() 和 task.continueWithTask() 有什么区别,你能分别举个例子吗? 最佳答案 continueWith 之间的主要区别
我是一名优秀的程序员,十分优秀!