-
[안드로이드] can't create handler inside thread that has not called looper.prepare()안드로이드(java)/에러 관련 2019. 8. 1. 15:11
can't create handler inside thread that has not called looper.prepare()
bluetooth 관련 작업 중에 나타난 에러입니다.
연결이 끊어졌을 때 toast 메세지를 띄워주려고 했는데 아무 연결이 끊어져도 toast 메세지가 나타나지 않아서 debug 걸어놓고 로그를 확인해보니 위와 같으 메세지가 나타났습니다.
찾아보니 mainThread가 아닌 다른 worker thread로 처리해주어야 하는것 같았습니다.
handler를 이용해서 처리해주면 될것같아서 아래처럼 작성한 후 진행해보니 이상없이 토스트가 잘 나타났습니다.
123456handler.post(new Runnable() {@Overridepublic void run() {Toast.makeText(getApplicationContext(), "장치 연결이 끊어졌습니다.", Toast.LENGTH_LONG).show();}});cs 혹시 다른 작업과 동시에 처리해줄 때 toast 메세지가 제대로 출력되지 않는분은 handler에 담아서 처리해보시는것도 방법일 것 같습니다.
'안드로이드(java) > 에러 관련' 카테고리의 다른 글