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

发布时间:2024-12-08 19:07

刺绣中常见的错误与解决办法 #生活技巧# #手工DIY技巧# #手工刺绣#

最近在写一个应用程序,过程中遇到了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();
 }

网址:Android中 View not attached to window manager错误的解决办法 https://www.yuejiaxmz.com/news/view/416594

相关内容

解决Android P/9.0 系统 网络请求错误
打开Arc Map出现license错误代码=
高中英语作文:我对二手货的看法 My View on Second
How to use?
cordova报错:ANDROID
kafka启动报错记录:Connection to node 0 could not be established. Broker may not be available.
java连接mysql错误及解决方案整合
如何根据错误码信息来定位问题
dart 错误
基于Android平台的生活小助手app的设计与实现

随便看看