[오늘의 에러] java.lang.RuntimeException: Can't toast on a thread that has not called Looper.prepare()

ssook·2021년 7월 1일
1

오늘의 에러

목록 보기
4/18
post-thumbnail

코틀린으로 스피드 퀴즈 데모 앱 개발을 하다가 에러가 발생했다!
에러 사진을 캡쳐했어야 했는데 까먹고 못했다,,,😇

📍 에러 이름

java.lang.RuntimeException: Can't toast on a thread that has not called Looper.prepare()

📍 발생원인

UI 스레드가 아닌 스레드에서 토스트 창을 띄우려고 해서 발생한 문제였다!
액티비티나 UI 스레드에서는 토스트 창을 띄울 수 있지만, 일반 스레드에서는 토스트 창을 쓰기 위해서는 핸들러를 사용해야 한다.

📍 해결방법

핸들러를 사용해 토스트 창을 띄울 코드를 감싸주자.
아래는 예시이다.

Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
    @Override
     public void run()
          {
             // 토스트 창을 띄울 코드를 여기에 적어주자 : )
           }
}, 0);

➕ 참고한 사이트

참고한 블로그로 이동!! : 아키텍트를 꿈꾸며 - 에코지오

profile
개발자에서, IT Business 담당자로. BrSE 업무를 수행하고 있습니다.

0개의 댓글