Android异常-Activity has leaked window com.android.internal.policy.impl.PhoneWindow... was originally
2016-07-11 09:28
441 查看
异常:
<span style="font-size:18px;">: android.view.WindowLeaked: Activity dianshi.matchtrader.activity.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView</span>{4374e4c0 V.E..... R.....I. 0,0-1026,692} that was originally added here at android.view.ViewRootImpl.<init>(ViewRootImpl.java:391) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:258) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) at android.app.Dialog.show(Dialog.java:323) at dianshi.matchtrader.view.MyAlertDialog.buildDialog(MyAlertDialog.java:89) at dianshi.matchtrader.view.MyAlertDialog.tipDialog(MyAlertDialog.java:112) at dianshi.matchtrader.activity.LoginActivity.alertConnect(LoginActivity.java:546) at dianshi.matchtrader.activity.LoginActivity.access$500(LoginActivity.java:54) at dianshi.matchtrader.activity.LoginActivity$5.handleMessage(LoginActivity.java:456) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5314) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:680) </span> at dalvik.system.NativeStart.main(Native Method)
异常出现地方:
//弹出提示对话框 dialog = new MyAlertDialog(AppManager.getAppManager().currentActivity()); dialog.tipDialog(getResources().getString(R.string.login_netFail), positiveBtnStr, negativeBtnStr, new MyAlertDialog.DialogCallBack() { @Override public void onEnSure() { Activity currentActivity = AppManager.getAppManager().currentActivity(); //跳转到登录页面 Intent intent = new Intent(currentActivity,LoginActivity.class); startActivity(intent); currentActivity.finish(); }
异常原因:
activity has leaked window 翻译过来是 这个activity有被泄露的窗口什么情况下会出现泄露的窗口?
一般是Dialog 或者popwindow 等这种基于一个activity才能弹出的窗口被泄露了.泄露的发生情况在一个处在弹出对话框的情况下 ,这个activity被finish了,但是这个弹出框没有被显式关闭,所以就被泄露了
异常解决:
//弹出提示对话框 dialog = new MyAlertDialog(AppManager.getAppManager().currentActivity()); dialog.tipDialog(getResources().getString(R.string.login_netFail), positiveBtnStr, negativeBtnStr, new MyAlertDialog.DialogCallBack() { @Override public void onEnSure() { //关闭对话框,这个一定要加上的,防止内存泄露 dialog.dismiss(); Activity currentActivity = AppManager.getAppManager().currentActivity(); //跳转到登录页面 Intent intent = new Intent(currentActivity,LoginActivity.class); startActivity(intent); currentActivity.finish(); }
相关文章推荐
- Android中Intent连接不同组件的原理
- android listView 重要属性
- 自定义ArrayAdapter深入
- DisplayUtils(尺寸相关)
- Android进程管理之布局代码和activity
- Android打开.pgm图片
- Volley的使用以及源码分析(二)
- Volley的使用以及源码分析(一)
- Android进程管理之taskinfo模型
- Android进程管理之数据格式化类TextFormat
- Android进程管理之工具类taskutils
- Android Studio 快捷键
- Android第三十天
- Android第二十九天
- android环境下两种md5加密方式
- Android 四大组件 五大布局
- android Base64加密解密
- Android Bitmap
- 安卓中关于Shareprence
- Android官方开发文档Training系列课程中文版:创建自定义View之View的创建