본문 바로가기

프로그래밍/안드로이드

Can't create handler inside thread that has not called Looper.prepare() 에러발생시 해결방법

Can't create handler inside thread that has not called Looper.prepare() 에러발생시 해결방법 



Thread나 Handler사용하다보면 아래과 같은 에러가 발생하면서 죽어버리는 경우가 종종발생합니다.


Can't create handler inside thread that has not called Looper.prepare() 



예를들어 아래와 같은 코드를 사용하였는데 위와같은 에러가 뜨면서 죽는다.

new Thread(new Runnable() {

public void run() {

new Handler().postDelayed( new Runnable() {

public void run() {

//하고싶은 작업추가

}

}, 30);

}

}).start();



그럼 밑에 붉은색으로 표시된 부분을 추가하시면 쉽게 해결되실겁니다.

new Thread(new Runnable() {

public void run() {

Looper.prepare();

new Handler().postDelayed( new Runnable() {

public void run() {

//하고싶은 작업ㅊ가

}

}, 30);

Looper.loop();

}

}).start();