我在同步调用api时遇到android.os.NetworkOnMainThreadException异常。我不能使用异步调用,因为我有很多api,下一个api依赖于先前api调用的输出。
怎么办?
答案 0 :(得分:1)
在retroft界面中声明方法如下:
@GET( “/ V1 / USER_INFO /(编号)”)
UserSummaryResponse getSummary(@Path(“id”) 字符串uId);
您需要在网络请求中启动一个新线程,并且不要忘记尝试捕获。
new Thread(new Runnable() {
@Override
public void run() {
try {
GetSummaryResponse summaryResponse = HttpClientManager.getInstance().userInterface.getSummary(uId);
userInfo = summaryResponse.userInfo;
setupUserInfo();
} catch (Exception e) {
withoutException = false;
Log.e(getTag(), e.getMessage());
}
}}).start();