반응형
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));
반응형
댓글