2014-07-08 2 views
0

다른 모든 앱보다 항상 표시되는 오버레이를 만들고 싶습니다. 나는 나의 활동시스템 오버레이로 인해 활동이 종료 될 때 창문이 누출 됨

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
       WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, 
       WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, 
       PixelFormat.TRANSLUCENT 
       ); 
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); 
windowManager.addView(myViewGroup, params); 

그것은 작동에 버튼 클릭에 아래의 코드를 사용하지만, 내가 응용 프로그램 종료 할 때 그것은 나에게 오류를 제공합니다 :이 오류를 방지하려면 어떻게해야

E/WindowManager(17254): android.view.WindowLeaked: 
Activity com.myPackage.myApp.MainActivity has leaked window 
com.myPackage.myApp.MainActivity$myViewGroup{4269d670 V.E..... ........ 0,0-1024,1024} 
that was originally added here 

를?

답변

0

트릭은 getApplicationContext().getSystemService(WINDOW_SERVICE)입니다.

단순히 getSystemService(WINDOW_SERVICE)을 사용하면 활동 컨텍스트가 사용됩니다. 이 컨텍스트는 활동을 종료 할 때 더 이상 존재하지 않으므로 창 누출 오류가 발생합니다.

+0

OP에 도움이 될 답변을 추가하십시오. –

관련 문제