Retrofit .execute
方法是否已经是后台任务,或者我应该在AsyncTask
中在改进的官方文档中调用此方法,它提到在mainThread中执行的回调,但是如果execute方法是后台任务则不清楚。
改造文件:
SYNCHRONOUS VS.异步 调用实例可以同步或异步执行。每个实例只能使用一次,但调用clone()将创建一个可以使用的新实例。
在Android上,回调将在主线程上执行。在JVM上, 回调将在执行HTTP的同一线程上发生 请求。
答案 0 :(得分:1)
这个link对你要求的内容有一个很好的解释。简而言之,异步请求将包含onResponse
和onFailure
等回调。如果您向API发出请求,那么您肯定希望使用异步。
答案 1 :(得分:1)
call.execute() //not a background task, works in the foreground(synchronous).
call.enqueue() //This is a background task(asynchronous).
call.execute()
在当前线程上运行请求。
call.enqueue()
在后台线程上运行请求,并在当前线程上运行回调。