투케이2K

133. (TWOK/ERROR) [Android] Can't create handler inside thread that has not called Looper.prepare() 본문

투케이2K 에러관리

133. (TWOK/ERROR) [Android] Can't create handler inside thread that has not called Looper.prepare()

투케이2K 2022. 12. 13. 16:44

[환경 설정 및 설명]

프로그램 : AndroidStudio

설 명 : UI 스레드 동작 에러 - Can't create handler inside thread that has not called Looper.prepare()

 

[에러 원인]

1. 일반 스레드에서 UI 관련 로직을 처리하는 경우 발생하는 이슈 (ex : 토스트 메시지, Alert 팝업창)

 

[해결 방법]

1. Handler Looper.getMainLooper 내부에 UI 로직 관련 처리 실시

 

                // [AlertDialog 팝업창 생성]
                Handler(Looper.getMainLooper()).postDelayed({ // TODO [핸들러 루퍼 사용 : UI 스레드]

                    AlertDialog.Builder(mContext)
                        .setTitle(Title) //[팝업창 타이틀 지정]
                        //.setIcon(R.drawable.app_icon) //[팝업창 아이콘 지정]
                        .setMessage(Message) //[팝업창 내용 지정]
                        .setCancelable(false) //[외부 레이아웃 클릭시도 팝업창이 사라지지않게 설정]
                        .setPositiveButton(buttonYes, DialogInterface.OnClickListener { dialog, which ->
                            // TODO Auto-generated method stub
                        })
                        .setNegativeButton(buttonNo, DialogInterface.OnClickListener { dialog, which ->
                            // TODO Auto-generated method stub
                        })
                        .show()

                },0)

 

반응형
Comments