【问题标题】:Is it possible to use another retrofit call inside on a first onResponse retrofit call?是否可以在第一次 onResponse 改造调用中使用另一个改造调用?
【发布时间】:2017-03-13 22:04:51
【问题描述】:

您好,我正在做一个应用程序,我需要在其中显示来自 youtube 频道的最后 10 个视频。我正在使用改造

首先我使用这个:https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername={Channel name}&key={Api key}

我将从该 json 中获取频道 ID,以便在这里使用它并从特定的 youtube 频道获取最后 10 个视频:

https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&playlistId={channel ID}&maxResults=10&key={Api key}

我已经完成了第一部分,并通过改造获得了频道 ID。

可以在第一个 onResponse 改造调用中使用另一个改造调用吗?那是在后台线程中有一个后台线程还是有其他方法可以做到这一点?

【问题讨论】:

  • RxJava 在某种程度上修复了这个“嵌套”。不过,这需要你学习一个新的库

标签: android android-asynctask android-volley retrofit


【解决方案1】:

我认为在您的 onResponse 方法中进行另一个改造调用没有任何问题。

您不会“嵌套”线程,因为 onResponse 回调是在您的主 Android 线程上执行的。因此,将另一个调用加入队列只会从主线程中分离出一个线程。另请注意,因此您无法在新调用中直接调用 execute(),因为您已回到主线程。

【讨论】:

    【解决方案2】:

    是的,没有问题,但我认为最好将另一个调用带到特定函数,并在第一次调用的回调中调用该函数。

    最好是阅读和调试,嵌套回调跟踪错误有点乱。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多