在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/

10-14 10:05
查看更多