[Error] Unable to add window -- token android.os.BinderProxy is not valid; is your activity running?

Minji Jeong·2022년 5월 9일
0

Troubleshooting

목록 보기
6/20
post-thumbnail

문제




Adapter 클래스 내(onLeftClick())에서 외부 액티비티의 다이얼로그 함수(modifyCalendarDialog, 해당 함수는 내부에서 AlertDialog를 생성한다)를 호출하려고 할 때 발생했다.

해결

AlertDialog를 사용할 때는 AlertDialog.Builder의 파라미터로 액티비티나 프래그먼트의 Context를 전달해야한다.나는 다이얼로그가 표시되어야 하는 액티비티가 더 이상 존재하지 않는데 해당 액티비티 내부의 다이얼로그 함수를 호출하려 했기 때문에 오류가 발생했던 것이다. 단지 자주 사용되는 함수를 따로 구현하지 않고 외부에서 호출해서 사용하려다가 AlertDialog의 생성 과정을 간과하여 이러한 오류를 경험했던 것이다.

AlertDialog.Builder builder = new AlertDialog.Builder(getActivty());

따라서 AlertDialog를 외부에서 편리하게 호출할 수 있도록 인터페이스나 클래스를 따로 생성하여 해결했다.

Reference

https://stackoverflow.com/questions/9529504/unable-to-add-window-token-android-os-binderproxy-is-not-valid-is-your-activ

profile
Mobile Software Engineer

0개의 댓글