在android studio项目中,我使用okhttp发送帖子请求。
public void sentRequest(.... ....) {
RequestBody formBody = new FormBody.Builder().add("number", number).build();
Request request = new Request.Builder().url(serverBase + API_numberAvailabilityCheck).post(formBody).build();
call = client.newCall(request);
new Thread(new Runnable() {
@Override
public void run() {
final HashMap<String, Object> requestResult = new HashMap<>();
try {
final Response response = call.execute();
}
...........
...........
}
}).run();
}
但这会在我调用
NetworkOnMainThreadException
的行上抛出final Response response = call.execute();
异常,尽管是new Thread
。为什么会抛出异常?以及如何解决? 最佳答案
错误是thread.run()
代替thread.start()
。
调用run()
方法,代码将在同一线程中运行,而无需启动新线程。
关于java - okHttp NetworkOnMainThreadException尽管有新线程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57337659/