Android의 Activity ***has leaked window android.widget.PopupWindow$PopupDecorView that was originall
페이지에서 popup Windows를 실현하였으며, 화면을 회전할 때 아래의 오류를 알립니다
Activity **** has leaked window android.widget.PopupWindow$PopupDecorView that was originally added here
분명히 창 메모리가 유출되었습니다. 화면을 돌릴 때, 순서대로 액티브의 onPause 방법 onStop 방법 onDestroy 방법을 사용합니다. 첨부된 액티브가 소각될 때, 이 때 popup Windows 핸들이 있으면 이 문제가 발생합니다.
2 초기 테스트
onDestroy 방법에서 popupWindows를 닫기
@Override
protected void onDestroy() {
super.onDestroy();
if (popupWindow != null && popupWindow.isShowing()) {
popupWindow.dismiss();
popupWindow = null;
}
}
그리고 테스트에서 여전히 위의 오류가 나타나는데, 이게 며칠 안 되는 일인가?
3 분석
Activity 구성 요소의 프로그램 창 보기 대상과 ViewRoot 대상 연결 창 관리자를 통해 연결
1) Window 클래스 getWindow Manager 분석 방법
public WindowManager getWindowManager() {
return mWin