这个问题以前可能已经问过了,但似乎没有一个可行的答案。我们使用Retrofit 2.1.0异步回调,它在后台线程上执行请求。但是,当接收到onResponse响应时,它将在应用程序的UI线程上发送回,而不管我将回调放在一个新线程中,强制它不使用UI。
由于我们不想因为任何原因而阻塞主UI线程,那么是否有可能在后台返回响应?
如果以上都不可能,是否建议从响应中踢出一个单独的线程,以避免UI线程阻塞?
任何帮助都将不胜感激。谢谢!
发布于 2016-12-29 06:54:03
您可以指定一个特定的执行器,以便在构建Retrofit实例时运行回调。下面是一个使用SingleThreadExecutor进行回调的示例。
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(/* your url */)
.callbackExecutor(Executors.newSingleThreadExecutor())
// other builder options...
.build();https://stackoverflow.com/questions/41356333
复制相似问题