关闭

android.view.WindowManager$BadTokenException:Unable to add window --token is not valid; is your acti

标签: android
716人阅读 评论(0) 收藏 举报

异常信息:

 android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?

问题描述:在Activity的onResume()方法中起一个线程,并在线程结束的时候弹出一个popupwindow,但是在这段代码处却报上面的异常:

popupwindow.showAtLocation(findViewById(android.R.id.content), Gravity.CENTER, 0,0);

打印findViewById(android.R.id.content)却不是空,网上查找资料,说原因是Activity的控件还没有渲染完,可以通过以下方法来解决这个问题:

findViewById(android.R.id.content).post(new Runnable() {

			@Override
			public void run() {
				popupWindow.showAtLocation(
						findViewById(android.R.id.content), Gravity.CENTER, 0,
						0);
			}
		});

这里虽然new了一个Runnable接口,但是run()方法中的代码却是在主线程执行的,这段代码的作用,就是把popupwindow弹出这段代码加到主线程的消息队列中去,stackoverflow中答案的作者说:这样就能等控件渲染完,再弹出popupwindow。这个方法确实解决了我的问题。

        这种方法在弹出Dialog时,同样适用

以下几点是我的疑问:

      1、android Activity的生命周期中,在onStart()方法之后,Activity就是visiable状态,那么为什么在onResume()中启动线程,然后弹出popupwindow,这个时候Activity的控件为什么还没有渲染完?

      2、view.post()方法只是把消息放到主线程的消息队列中,为什么就会在Activity中的控件渲染完成之后再执行popupwindow弹出那段代码?

     3、这个问题只在5.1.1系统的一个机器上出现了,但是在低版本的系统中却没有出现。

     问题地址:http://stackoverflow.com/questions/4187673/problems-creating-a-popup-window-in-android-activity

     相关问题:“android.view.WindowManager$BadTokenException: Unable to add window — token null is not for an application”


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

JavaScript中多的是。你不知道的坑

1、最新的chrome浏览器:
  • xingxing1828
  • xingxing1828
  • 2015-08-14 14:33
  • 2229

iOS 企业账号分发App 详解

最近发现 蒲公英 网站 只要把企业版的 ipa 文件上传就能下载 安装App 感觉很奇怪,没有配置 xml 格式的plist 就能 下载,终于搞清楚原因了。这里先科普一下:企业版账号如何分发App。 ...
  • jeffasd
  • jeffasd
  • 2016-03-16 17:42
  • 5959

Adam学习11之Adam2.10-0.19搭建问题解决

Adam学习11之Adam2.10-0.19搭建问题解决 From:https://github.com/bigdatagenomics/adam/issues/1001 install by m...
  • bob601450868
  • bob601450868
  • 2016-04-18 10:27
  • 1522

android.view.WindowManager$BadTokenException:Unable to add window --token is not valid; is your acti

问题描述:在Activity的onResume()方法中起一个线程,并在线程结束的时候弹出一个popupwindow,但是在这段代码处却报上面的异常: popupwindow.showAtLocati...
  • AuthorK
  • AuthorK
  • 2015-11-19 12:11
  • 716

AsyncTask 与 对话框显示 view.WindowManager$BadTokenException: Unable to add window…is not valid; is your a

最近遇到一个奇葩的问题,好郁闷 之前也没有仔细看。问题偶尔出现一次。再去查看日志时,出现 view.WindowManager$BadTokenException: Unable to add wi...
  • chenshufei2
  • chenshufei2
  • 2013-08-06 15:50
  • 1508

android.view.WindowManager$BadTokenException: Unable to add window — token null is not for an applic

之前遇到过这样的问题, 04-12 10:40:33.302: E/AndroidRuntime(17213): Caused by: android.view.WindowManager$Ba...
  • BossDarcy
  • BossDarcy
  • 2013-07-01 21:25
  • 2710

Android报错android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for

现象: 报错android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for a...
  • xulianbocs
  • xulianbocs
  • 2016-04-30 15:48
  • 528

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an appli

昨天纠结了我一天的问题,今天终于有点眉目了,看来做这一行休息是必要的啊。。。今天记录一下似乎这类型的错误已经犯了不少,真是不应该啊。。 这几天在做一个客户端,公司产品的管理从服务器上移置到A...
  • huangbiao86
  • huangbiao86
  • 2012-07-27 08:57
  • 10866

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an appli

在service中通过WindowManager创键自定义view的时候出现如下错误: android.view.WindowManager$BadTokenException: Unable to...
  • zdnuist
  • zdnuist
  • 2015-04-01 19:50
  • 312

android.view.WindowManager$BadTokenException: Unable to add window — token null is not for an applic

转载地址:http://blog.csdn.net/androidyue/article/details/9219883# 之前遇到过这样的问题 [java] view plaincopyprin...
  • BAD__BOYlove
  • BAD__BOYlove
  • 2014-10-15 10:54
  • 520
    个人资料
    • 访问:65555次
    • 积分:1265
    • 等级:
    • 排名:千里之外
    • 原创:56篇
    • 转载:8篇
    • 译文:4篇
    • 评论:1条
    文章分类