01-02 02:28:50.113: ERROR/WindowManager(3457): Activity com.iptt.activity.Called has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@4053cbd8 that was originally added here
01-02 02:28:50.113: ERROR/WindowManager(3457): android.view.WindowLeaked: Activity com.iptt.activity.Called has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@4053cbd8 that was originally added here
01-02 02:28:50.113: ERROR/WindowManager(3457):     at android.view.ViewRoot.<init>(ViewRoot.java:272)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at android.view.Window$LocalWindowManager.addView(Window.java:424)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at android.app.Dialog.show(Dialog.java:241)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at com.iptt.activity.Called.onCreate(Called.java:66)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at android.os.Looper.loop(Looper.java:123)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at android.app.ActivityThread.main(ActivityThread.java:3647)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at java.lang.reflect.Method.invokeNative(Native Method)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at java.lang.reflect.Method.invoke(Method.java:507)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-02 02:28:50.113: ERROR/WindowManager(3457):     at dalvik.system.NativeStart.main(Native Method)具体是内存泄露 dialog我是写在一个activity中 这个Activity就只有一个dialog。
我在onDestroy 方法里也dismiss 了diaolog   当前Activity里面有一个dialog 但是我关的时候 dialog没有关闭成功   是否要先判断 当前activity是否活着?
如果没有活着就关闭dismiss掉 dialog?请教!!!

解决方案 »

  1.   

    在onDestroy()方法这样写,if(dialog!=null && dialog.isShowing(){dialog.dismiss()}
      

  2.   

    这个方法是在你的Activity里面有弹出的Dialog,而在Dialog没有被关闭的时候 你就退出了Dialog,所以就会出现此错误。
       最后还要提醒一下LZ,在Dialog内部要使用Context时,一定要用当前Activity的Context,不能使用getApplicationContext,切记呀。
      

  3.   

    当你显示的弹出框的上下文环境已经消失,再去操作弹出框就会弹出这个错误,一般我们的上下文环境就是activity,所以像楼上所说的确定你的activity是否是活动的