改造同步和异步请求有什么区别?哪个更好,为什么?

新手上路,请多包涵

我真的到处都在搜索这个,我可以同时发出同步和异步数据请求,但我实际上无法理解哪个异步与什么?什么与什么同步?

原文由 Mohammad Elsayed 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 604
2 个回答

当您异步时,这意味着不在前台(它在完成给定任务时不会阻塞用户界面),另一方面,同步意味着在前台,而您的应用程序在 UI 消耗的同一线程中执行操作。

在你的情况下(通过改造或任何其他 REST api 发出 REST 请求)你不能在前台发出请求,你必须在后台线程中发出请求。

在改造的情况下,您可以通过以下方法提出请求:

 call.execute() // works in the foreground.
call.enqueue() // works in the background.

所以你有两个选择:要么直接调用 call.enqueue,要么你可以使用 call.execute 但用服务包装(我的意思是你必须自己处理后台工作)。

原文由 Mohammad Elsayed 发布,翻译遵循 CC BY-SA 3.0 许可协议

call.execute() 在当前线程上运行请求。

call.enqueue(callback) 在后台线程上运行请求,并在当前线程上运行回调。

您通常不想在主线程上运行 call.execute() 因为它会崩溃,但您也不想在后台线程上运行 call.enqueue()

原文由 EpicPandaForce 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题