2011-12-01 1 views
1

유출 방지, 좀 유래 스레드를 언급하고 우리가 피할 필요 팝업을 생성하는 동안, 대신 발견 우리는 getApplicationContext() 사용해야하지만 내가 통해 검색 한 후 다시 안드로이드, 나는 <strong><em>이</em></strong> 예외를 android.view.WindowLeaked 얻고있다 내 응용 프로그램에 원숭이 도구를 실행하는 동안 창

E/AndroidRuntime(5597): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 

BadTokenException

를 일으키는 승이 답변을 찾을 HICH이 오류의

원인 중 하나는 활동이 문제를 해결하는 방법 그래서

없는 상황을 통해 응용 프로그램 창/대화 상자를 표시하려고 할 수있다라고?

답변

3

Dialog.show() 메서드 만 사용하고 에서는 showDialog 메서드를 사용하지 않기 때문에 일반적으로 윈도우가 누수됩니다.

대화 상자가 표시되고 Activity 구성 변경 (예 : 오리엔테이션 변경) 대화 상자에 첨부 할 창이 없으므로 창이 누수됩니다.

Compatibility library을 사용하는 경우 dialog 대신 DialogFragment을 사용해야합니다.

0

이유는 뒤에 또는 popupwindow을 계속 표시한다는 것입니다.

활동간에 전환하거나 활동을 취소 할 때마다 항상 팝업이나 대화 상자를 닫아야합니다.

그러므로 onPause 메서드에서 dilog.dismiss()를 호출해야합니다.

onPause() 
{ 
dilog.dismiss() 
} 
관련 문제