본문 바로가기
IT/ERROR

Android Unable to add window -- token null is not valid; is your activity running?

by TechTonic 2022. 8. 2.
반응형

1. Unable to add window -- token null is not valid 오류 현상

Dialog를 생성해서 화면에 띄우려고 하니 하기 오류가 발생되었습니다.

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?

 

구현된 코드는 아래와 같으며, 나 같은 경우 Activity에 해당 코드가 구현되어 있으나, 실제 팝업이 생성되는 위치는 Fragment 화면입니다.

Dialog = new ProgressDialog(getApplicationContext(), getResources().getString(R.string.Loading));
Dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
Dialog.show();

 

2. 원인 및 해결방안

Dialog 속성 값으로 getApplicationContext() 를 넣은 게 원인입니다.

일반적으로 아래와 같이 getApplicationContext() 대신 getActivity() 로 넣어주면 됩니다.

Dialog = new ProgressDialog(getActivity(), getResources().getString(R.string.Loading));

 

저 같은 경우는 MainActivity 에서 호출하여 Fragment 화면에 띄워줘야 하므로 아래와 같이 수정하였습니다.

Fragment fb = new Fragment();
Dialog = new ProgressDialog(fb.getActivity(), getResources().getString(R.string.Loading));

 

반응형

댓글