`
jiaoronggui
  • 浏览: 1339608 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
B7c2eb31-a8ea-3973-a517-d00141f39b89
项目管理软件-redmin...
浏览量:116861
4a63e153-250f-30f6-a051-97cfc67cb3d3
IT职业规划
浏览量:200111
社区版块
存档分类
最新评论

Android中 View not attached to window manager错误的解决办法

阅读更多

 

最近在写一个应用程序,过程中遇到了java.lang.IllegalArgumentException: View not attached to window manager的错误,也上网找了不少解决的办法,感觉方法不是很方便,自己写了简单方法:

 

程序主要目的,在提交数据到url,出现一个进度提示,停留1秒钟,但是在登录页面出现问题了,登陆页面,当用户点登录之后,登录速度非常快的时候,要不到1秒钟,就会出现登录窗口关闭,主窗口自动打开,在线程中出现而关闭进度提示窗口,但是主窗口关闭,在关闭进度提示,就会出现java.lang.IllegalArgumentException: View not attached to window manager的错误

 

解决方法:

1、设置一个全局的变量isClose,默认值为false;

 

2、当窗口关闭的时候,设置isClose=false

 

3、在handle处理中,增加

 

private Handler handler = new Handler() {

@Override

public void handleMessage(Message msg) {

if(!isClose){

pd.dismiss();

}

 

}

};

 

其他解决方案

网上的方法之一:

 

 

我的问题是:在A中启动B,B中有线程操作,结束时涉及到对话框的dismiss。如果在操作尚未结束时,按下HOME键,线程后台操作。此时重新进去A,等到线程操作完成就会出现这个异常。此时应该做一个判断,如下:

                // Dismiss the Dialog only when the parent Activity is still alive.
                if (SelectContactsActivity!=null&&!SelectContactsActivity.this.isFinishing()) {
                    mProgressDialog.dismiss();
                }

 

网上的方法之二:

 

在一个Activity A 中调用B中一个用来多线程操作的方法 这个方法中用线程控制了popupwindow的弹出和关闭当我按下返回键的时候就抛出了这样的错误,在网上查了很久,还是不怎么理解,不过问题还是得到解决了。

我是这么做的:把B中的popupwindow变量传递到A中 然后在onDestroy()方法中dismiss。

 @Override
 protected void onDestroy() {
  // TODO Auto-generated method stub
   B.popupWindow.dismiss();
  super.onDestroy();
 }

1
0
分享到:
评论
1 楼 gundumw100 2013-04-23  
这个问题是由于Activity销毁了,但依赖于这个activity的Dialog或者PopupWindow没有提前关闭引起了。也就是说,在Activity销毁之前,首先要关闭Dialog或者PopupWindow。所以你的方法二是对的,但通常我不写在onDestroy()中。

相关推荐

    Android 副屏调用demo

    在Android系统中,副屏(通常称为第二屏幕或外部显示器)的调用是一个相对复杂的任务,需要对Android的硬件抽象层(HAL)、显示系统以及应用层有深入理解。本示例"Android副屏调用demo"提供了一个实现副屏显示功能的...

    Android开发笔记之:Dialog的使用详解

    在这种情况下,需要确保在Activity的生命周期方法中妥善处理Dialog的关闭,防止出现“IllegalArgumentException: View not attached to window manager”的错误。 以上是关于Android Dialog使用的一些关键点和最佳...

    探讨:你真的会用Android的Dialog吗?

    然而,不恰当的使用方式可能会导致各种问题,其中`IllegalArgumentException: View not attached to window manager`就是一个典型错误。这篇文章将深入探讨如何正确地在Android中使用Dialog,以及如何避免遇到上述...

    BCGControlBarPro.v12.00

    1、直接在“解决方案资源管理器”-“资源文件”中点右键,“添加”-“现有项”,把C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles中所有扩展名为 .rc 的资源包括进来即可。 2、直接在“资源视图”-“您...

    BUS Hound

    extended scan code E0 0004h = extended scan code E1 6 2 Not used 8 4 Device specific information <br> <br>The Save Window <br>The Save button saves all captured data to the ...

Global site tag (gtag.js) - Google Analytics