文档章节

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

luhang
 luhang
发布于 2017/02/09 13:27
字数 363
阅读 20
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

AWS的自动部署工具codedeploy 部署前的准备工作

开始部署codedeploy: 1.先预置IAM用户: 创建一个IAM用户或使用一个与AWS相关联的用户; 复制以下的策略附加到IAM用户,向IAM用户赋予对codedeploy(及codedeploy所依赖的AWS服务和操作)的...

守护-创造
13分钟前
0
0
这可能是最详细的一线大厂Mysql面试题详解了

1、MySQL的复制原理以及流程 基本原理流程,3个线程以及之间的关联; 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 从:io线程——在使用start slave 之后...

Java干货分享
23分钟前
0
0
人的精力是什么?如何强化精力

人的精力是什么? 人的精力是什么? 精力指精神和体力。精神包括一个人的精神状态,兴奋度,做事情的投入度,专注度,持续时间等。 人的精力来源 人的精力有4种来源,身体的、情感的、思想的和...

莫库什勒
41分钟前
0
0
JFinal开发的旅游线路营销Saas平台演示系统我部署了一个

今天部署了一个旅游线路营销管理系统的演示版: 演示地址:http://lvyou.jfinalxueyuan.com 演示账号:(暂时只给一个门店版的吧,批发商和总部的如果需要 演示看看 单独联系我微信:1876673...

山东-小木
今天
2
0
如何学习大数据技术

学习大数据技术,首先要明确大数据的概念。 大数据的概念作者认为有如下几点: 1.数据的来源多样性。例如关系数据库+文本+excel等 2.数据量大。TB级别的数据。 3.业务应用领域。实时性高与实...

董黎明
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部