最近在写一个应用程序,过程中遇到了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();
}
相关推荐
问题解决:Fragment not attached to Activity的相关代码,更多详细内容请参考:http://blog.csdn.net/u012939909/article/details/53355836
在Android系统中,U盘(USB存储设备)的插拔监听和写入权限管理是开发者在处理外部存储设备时常见的需求。这篇详细版教程将帮助你理解如何在Android应用中实现这些功能。首先,我们来看一下如何监听U盘的插入和移除...
在Android应用开发中,`Activity`是程序的基本组件,它负责与用户进行交互,而`Fragment`则可以看作是`Activity`的一部分或者模块化组件,可以在多个`Activity`之间复用。`Activity`和`Fragment`的组合使用是构建...
水星MW300R无线路由上网设置方法.docx
XPopup 国内Gitee镜像地址: 承接软件外包服务 本公司提供全行业(即时通讯,直播,商城等)的软件外包服务,网站和系统定制,APP开发,微信小程序和公众号开发等,价格美丽。公司官网: 中文 | ...
在Android系统中,检测U盘(USB存储设备)的热插拔事件是一项常见的需求,尤其在开发与USB设备交互的应用时。"android检测U盘插拔事件"这个标题揭示了我们要探讨的核心技术点:如何在Android应用中监听并处理U盘的...
这篇内容将深入讲解如何在Android应用程序中实现U盘插拔的监听以及解决U盘写入权限的问题。 首先,我们需要了解Android的USB主机模式(USB Host Mode)。在Android 3.1及以上版本,系统支持USB主机模式,允许设备...
Android Studio 是一款功能强大且流行的集成开发环境(IDE),它提供了多种调试技术来帮助开发者检测和解决程序中的错误和问题。在这篇文章中,我们将深入探讨 Android Studio 的调试技术,并提供实践指南和示例代码...
An Android Toast replacement, similar to the one seen in the GMail app. Multiple messages can be posted in succession, and each message will be shown for 5 seconds. Usage There's two ways to use the ...
在Android系统中,副屏(通常称为第二屏幕或外部显示器)的调用是一个相对复杂的任务,需要对Android的硬件抽象层(HAL)、显示系统以及应用层有深入理解。本示例"Android副屏调用demo"提供了一个实现副屏显示功能的...
很抱歉,但根据您给出的信息,"ATTACHED" 和 "831" 并没有提供足够的上下文来生成一个超过1000字的详细IT知识文章。标题和描述都是相同的,而“字体”作为标签可能指的是文件内容涉及到字体设计、使用或技术。然而,...
在这种情况下,需要确保在Activity的生命周期方法中妥善处理Dialog的关闭,防止出现“IllegalArgumentException: View not attached to window manager”的错误。 以上是关于Android Dialog使用的一些关键点和最佳...
Fragment是Android应用开发中不可或缺的一部分,它允许开发者在同一个Activity中构建复杂的用户界面,并且能够独立于Activity进行生命周期管理。Fragment的设计使得它们可以被重用,增强了应用的灵活性和可维护性。...
本文将详细介绍常见的ADSL拨号上网错误及其可能的原因与解决方法。 #### 二、常见错误代码解析 1. **600 - An operation is pending** - 解释:表示系统中有一项操作正在进行中。 - 解决方法:等待正在进行的...
在Android开发中,有时我们需要实现设备与PC之间的通信,例如进行数据传输或者调试。本教程将探讨如何在Android设备上通过USB接口与PC进行双向通信,支持字符和文件的交互。这种通信方式常用于设备控制、数据同步...
然而,不恰当的使用方式可能会导致各种问题,其中`IllegalArgumentException: View not attached to window manager`就是一个典型错误。这篇文章将深入探讨如何正确地在Android中使用Dialog,以及如何避免遇到上述...
在Android中,使用`UsbDeviceConnection.claimInterface()`方法获取接口,并指定端点进行数据传输。 8. **读写操作** 数据读写通过`UsbDeviceConnection.bulkTransfer()`方法完成,它用于向USB设备发送批量数据...
物理架构包括两台配置相同的服务器,作为高可用性的View Manager和View Composer节点,以及一台或多台存储设备,如VMware vSphere Storage Area Network (SAN) 或Network Attached Storage (NAS),用于存储虚拟桌面...
Bugsnag exception reporter for Android Get comprehensive Android crash reports to quickly debug errors. Bugsnag's Android crash reporting...Log breadcrumbs which are attached to crash reports and ad
在Android平台上进行CH34x芯片的USB通信是嵌入式开发中的常见任务,尤其对于需要与硬件设备交互的应用来说。CH34x系列芯片是由韦尔奇科技(Wch Chip)开发的一组USB到串口控制器,广泛用于USB转串口适配器,使得通过...