## Activity has leaked window that was originally added
今天调试程序时log中突然打印这样的错误,但是程序并没有crash,为了不放过一个错误,我决定调查一下。
当时是离开一个activity,然后提示是否退出此界面,接下来就打印此错误:
~~~
1. 03-08 18:02:48.521: E/WindowManager(6340): Activity com.linc.megatron.activity.ExamActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@40568ea8 that was originally added here
2. 03-08 18:02:48.521: E/WindowManager(6340): android.view.WindowLeaked: Activity com.linc.megatron.activity.ExamActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@40568ea8 that was originally added here
3. 03-08 18:02:48.521: E/WindowManager(6340): at android.view.ViewRoot.(ViewRoot.java:264)
4. 03-08 18:02:48.521: E/WindowManager(6340): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
5. 03-08 18:02:48.521: E/WindowManager(6340): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
6. 03-08 18:02:48.521: E/WindowManager(6340): at android.view.Window$LocalWindowManager.addView(Window.java:424)
7. 03-08 18:02:48.521: E/WindowManager(6340): at android.app.Dialog.show(Dialog.java:241)
8. 03-08 18:02:48.521: E/WindowManager(6340): at com.linc.megatron.base.BackKeyActivity.showDialog(BackKeyActivity.java:76)
9. 03-08 18:02:48.521: E/WindowManager(6340): at com.linc.megatron.base.BackKeyActivity.onKeyDown(BackKeyActivity.java:62)
10. 03-08 18:02:48.521: E/WindowManager(6340): at android.view.KeyEvent.dispatch(KeyEvent.java:1256)
11. 03-08 18:02:48.521: E/WindowManager(6340): at android.app.Activity.dispatchKeyEvent(Activity.java:2078)
12. 03-08 18:02:48.521: E/WindowManager(6340): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1709)
13. 03-08 18:02:48.521: E/WindowManager(6340): at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2628)
14. 03-08 18:02:48.521: E/WindowManager(6340): at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2603)
15. 03-08 18:02:48.521: E/WindowManager(6340): at android.view.ViewRoot.handleMessage(ViewRoot.java:1875)
16. 03-08 18:02:48.521: E/WindowManager(6340): at android.os.Handler.dispatchMessage(Handler.java:99)
17. 03-08 18:02:48.521: E/WindowManager(6340): at android.os.Looper.loop(Looper.java:123)
18. 03-08 18:02:48.521: E/WindowManager(6340): at android.app.ActivityThread.main(ActivityThread.java:3687)
19. 03-08 18:02:48.521: E/WindowManager(6340): at java.lang.reflect.Method.invokeNative(Native Method)
20. 03-08 18:02:48.521: E/WindowManager(6340): at java.lang.reflect.Method.invoke(Method.java:507)
21. 03-08 18:02:48.521: E/WindowManager(6340): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
22. 03-08 18:02:48.521: E/WindowManager(6340): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
23. 03-08 18:02:48.521: E/WindowManager(6340): at dalvik.system.NativeStart.main(Native Method)
~~~
显然,我用Dialog确认是否退出,但是activity销毁后并没有处理Dialog的退出。
解决办法:
知道了问题所在就容易解决问题了。只需要在activity销毁时关闭Dialog就好。
~~~
@Override
protected void onDestroy() {
if(mDialog != null) {
mDialog.dismiss();
}
super.onDestroy();
}
~~~
- 前言
- Android问题集锦转载之一
- Android问题集锦之一
- Android问题集锦之二
- Android问题集锦之三
- Android问题集锦转载之二
- Android问题集锦转载之三
- Android问题集锦之四
- Android问题集锦转载之四
- Android问题集锦转载之五
- Android问题集锦之六
- Android问题集锦之七
- Android问题集锦之八
- Android问题集锦之九
- Android问题集锦之十
- Android问题集锦之十一
- android问题集锦之十二
- Android问题集锦转载之六
- Android问题集锦之十三
- Android问题集锦之十四
- Android问题集锦转载之七
- Android问题集锦之十五
- Android问题集锦转载之八
- Android问题集锦之十六
- Android问题集锦之十七
- android问题集锦之十八
- Android环境问题集锦之十九
- Android问题集锦之二十
- Android问题集锦之二十一
- Android问题集锦之二十二
- Android问题集锦之二十三
- Android问题集锦之二十四
- Android问题集锦之二十五
- Android问题集锦之二十六
- Android问题集锦之二十七
- Android问题集锦之二十八
- Android问题集锦之二十九
- Android问题集锦之三十
- Android问题集锦之三十一
- Android问题集锦之三十二
- Android问题集锦之三十三
- Android问题集锦之三十四
- Android问题集锦之三十五
- Android问题集锦之三十六
- Android问题集锦之三十七
- Android问题集锦之三十八
- Android问题集锦之三十九
- Android问题集锦之四十
- Android问题集锦之四十一
- Android问题集锦之四十二
- Android问题集锦之四十三
- Android问题集锦之四十四
- Android问题集锦之四十五
- Android问题集锦之四十六