【发布时间】:2015-03-17 06:33:01
【问题描述】:
这个问题已经here提到过,但这是一个很老的问题,我找不到任何其他信息。
Retrofit API 调用的请求拦截器在主线程上执行。这是与 AccountManager 打交道以将身份验证令牌添加到请求标头时的问题,例如
String token = mAccountManager.blockingGetAuthToken(account, AuthConsts.AUTH_TYPE, false);
G+ 上讨论了同样的问题,GitHub 上here 上也有一个相关问题。
虽然这一切都得到了解决(感谢 SquareUp!),但最好的解决方法是什么?将 Retrofit 调用包装在 AsyncTask 或类似的东西中感觉就像使整个想法无效。
【问题讨论】:
-
Retrofit 的工作不是将网络调用移出主线程。它只是为 Rest 服务提供一个接口。我最近在一个项目中使用了this 方法,为使用 Retrofit 进行的每个调用添加了一个请求拦截器。
标签: android retrofit networkonmainthread