文档章节

android.view.WindowManager$BadTokenException: Unable to add window — token null

luhang
 luhang
发布于 2017/02/09 13:27
字数 363
阅读 9
收藏 0
导致报这个错是在于new AlertDialog.Builder(mcontext),虽然这里的参数是AlertDialog.Builder(Context context)但我们不能使用getApplicationContext()获得的Context,而必须使用Activity,因为只有一个Activity才能添加一个窗体。 

解决方法:将new AlertDialog.Builder(Context context)中的参数用Activity.this(Activity是你的Activity的名称)来填充就可以正确的创建一个Dialog了。 
Java代码  
  1. new AlertDialog.Builder(MyActivity.this)  
  2.                 .setIcon(android.R.drawable.ic_dialog_alert)  
  3.                 .setTitle("Warnning")  
  4.                 .setMessage(  
  5.                         "You forget to write the message. Do you want to fill out it ??")  
  6.                 .setPositiveButton("Yes", positiveListener).setNegativeButton(  
  7.                         "No", negativeListener).create().show();  


总结,

当我们访问当前应用的资源,启动一个新的activity的时候都需要提供Context。

Context是一个抽象基类,我们通过它访问当前包的资源(getResources、getAssets)和启动其他组件(Activity、Service、Broadcast)以及得到各种服务(getSystemService),当然,通过Context能得到的不仅仅只有上述这些内容。对Context的理解可以来说:Context提供了一个应用的运行环境,在Context的大环境里,应用才可以访问资源,才能完成和其他组件、服务的交互,Context定义了一套基本的功能接口,可以理解为一套规范,而Activity和Service是实现这套规范的子类,这么说也许并不准确,因为这套规范实际是被ContextImpl类统一实现的,Activity和Service只是继承并有选择性地重写了某些规范的实现。

本文转载自:http://blog.csdn.net/qq_18413391/article/details/52770446

共有 人打赏支持
luhang
粉丝 3
博文 15
码字总数 571
作品 0
长宁
程序员
私信 提问
ACTION_BOOT_COMPLETED手机重启后广播机制问题

写了一个简单的程序测试android系统重启后的广播调用 public class ReBootReceive extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { AlertD......

sexants
2013/05/26
3.4K
2
Android postDelay+Dialog引起的窗体泄露

1.问题描述 Android中消息队列postDelay+Dialog引起的窗体泄露的主要原因是,当床窗体压入栈或者finish掉后,Activity由于需要处理postDelay而不能及时销毁,因此造成了一个问题,当dialog触...

IamOkay
2014/11/24
0
0
Unable to add window --token null is not valid;

今天遇到如下错误bug: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? 最后终于发现是PopupWindow组件的使用......

tyronejw
2015/11/11
0
0
Android 弹出框的exception

java.lang.RuntimeException: Unable to start service com.zshfzb.pop.MyService@41a76f10 with Intent { cmp=com.zshfzb/.pop.MyService }: android.view.WindowManager$BadTokenException......

深圳_小白菜
2014/04/21
0
0
上下文问题

<1> 对程序中的上下文一直有疑惑,不知为什么要导入上下文,其实,android中要想获取res文件夹中的资源文件,必须获得资源文件的上下文,才可进行资源文件的引用 <2> 开发过程中,用到两种上下...

OnOctober29
2016/03/29
15
0

没有更多内容

加载失败,请刷新页面

加载更多

Integer使用双等号比较会发生什么

话不多说,根据以下程序运行,打印的结果为什么不同? Integer a = 100;Integer b = 100;System.out.println(a == b);//print : trueInteger a = 200;Integer b = 200;System.out.pr...

兜兜毛毛
昨天
5
0
CockroachDB

百度云上的CockroachDB 云数据库 帮助文档 > 产品文档 > CockroachDB 云数据库 > 产品描述 开源NewSQL – CockroachDB在百度内部的应用与实践 嘉宾演讲视频及PPT回顾:http://suo.im/5bnORh ...

miaojiangmin
昨天
2
0
I2C EEPROM驱动实例分析

上篇分析了Linux Kernel中的I2C驱动框架,本篇举一个具体的I2C设备驱动(eeprom)来对I2C设备驱动有个实际的认识。 s3c24xx系列集成了一个基于I2C的eeprom设备at24cxx系列。at24cxx系列芯片包...

yepanl
昨天
3
0
设计模式之工厂模式

本篇博文主要翻译这篇文章: https://www.journaldev.com/1392/factory-design-pattern-in-java 由于翻译水平有限,自认为许多地方翻译不恰当,欢迎各位给出宝贵的建议,建议大家去阅读原文。...

firepation
昨天
10
0

中国龙-扬科
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部