-
NetworkOnMainThreadException 에러 원인과 대처법Android 2017. 11. 6. 17:51
원인 Activity 가 실행될때 바로 HTTP 통신을 하는 경우에 발생
대처법 Thread() 를 사용하면 된다.
기존코드
RequestBody body = new FormBody.Builder()
.add("Token", userToken)
.add("Phone_Number", phoneNumber)
.build();
//request
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
try {
//Log.d(TAG,"실행" + token);
client.newCall(request).execute();
} catch (IOException e) {
e.printStackTrace();
}Thread()사용
new Thread() {
public void run() {
RequestBody body = new FormBody.Builder()
.add("Token", userToken)
.add("Phone_Number", phoneNumber)
.build();
//request
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
try {
//Log.d(TAG,"실행" + token);
client.newCall(request).execute();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();'Android' 카테고리의 다른 글
[FCM] 발송 로그는 성공인데 push 메시지가 오지 않는 경우 해결방법 (0) 2019.06.15 [카카오톡 로그인 연동]하이브리드 웹, 앱 카카오톡 로그인 연동 (0) 2019.06.14