Arm*_*ght 3 rest android retrofit
我真的在每个地方搜索过这个,我可以做同步和异步数据请求,但我实际上无法理解哪个是异步的?什么与什么同步?
Epi*_*rce 16
call.execute()
在当前线程上运行请求.
call.enqueue(callback)
在后台线程上运行请求,并在当前线程上运行回调.
您通常不希望call.execute()
在主线程上运行,因为它会崩溃,但您也不希望call.enqueue()
在后台线程上运行.
当你异步时,它意味着不在前台(当它完成给定任务时它不会阻塞用户界面),另一方面,当你的应用程序在UI消耗的同一个线程中执行事物时,前台的同步意味着.
在您的情况下(通过改造或任何其他REST api发出REST请求),您不能在该前景中进行,并且您必须在后台线程中进行.
在改造的情况下,您有以下方法来发出请求:
call.execute() // works in the foreground.
call.enqueue() // works in the background.
Run Code Online (Sandbox Code Playgroud)
所以你可以选择两个:你要么直接调用call.enqueue,要么你可以使用call.execute但是包含一个服务(我的意思是你必须自己处理后台工作).