当前位置: 首页 > news >正文

Unable to add window -- token null is not valid; is your activity running?

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

这个错误消息就是因为没有应用token导致的,而应用的token一般只有Activity有,所以这里我们只需要用
Activity作为Context来显示Dialog。

//常见情形,创建弹窗的时候,抛异常代码
new AlertDialog.Builder(getApplicationContext())  //不能用getApplicationContext()
            .setIcon(android.R.drawable.ic_dialog_alert)  
            .setTitle("Warnning")  
            .setPositiveButton("Yes", positiveListener)
            .setNegativeButton(  "No", negativeListener)
            .create().show(); 

如果当前就是activity类里面,或者继承的有activity类。就不能使用getApplicationContext()获得的Context,而必须使用Activity,因为只有一个Activity才能添加一个窗体。

可以改为this 或者  当前activity名称.this

//修正后代码
new AlertDialog.Builder(this)  //this可以替换为MainActivity.this或getActivity()
            .setIcon(android.R.drawable.ic_dialog_alert)  
            .setTitle("Warnning")  
            .setPositiveButton("Yes", positiveListener)
            .setNegativeButton(  "No", negativeListener)
            .create().show(); 

另外,dialog的显示是依赖于activity的context,无法在service服务类中直接调用。 

如果是服务类:最好使用当前的mContext,如果没有,就可使用getApplicationContext()有效

其他情况1,2:

1,//title可以是该activity的任何View,
    title.post(new Runnable() {
                @Override
                public void run() {
                    //弹出Popwindow 的代码
                    showPop();
                }
            });
 

2,

dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

改为:

dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);

 Toast弹窗:不能仅仅只使用this,否则编译报错

android.widget.Toast.makeText(XXXXActivity.this,"xxxx", android.widget.Toast.LENGTH_LONG).show();

android.widget.Toast.makeText(getApplicationContext(),"xxxx", android.widget.Toast.LENGTH_LONG).show();


http://www.mrgr.cn/news/60566.html

相关文章:

  • MySQL(2)【库的操作】
  • 51单片机之蜂鸣器驱动
  • C语言二刷指针篇
  • Python_PyCharm无法打开终端命令行最终解决方案(实测)
  • MarkDown代码
  • openEuler 逻辑卷操作案例
  • 【JIT/极态云】技术文档--函数设计
  • 可重入函数和不可重入函数
  • LVGL移植教程(超详细)——基于GD32F303X系列MCU
  • 量子容错计算
  • 【JVM】——GC垃圾回收机制(图解通俗易懂)
  • PowerShell 提示“系统禁止运行脚本”
  • 【嵌入式软件-STM32】按键控制LED 光敏传感器控制蜂鸣器
  • Shiro会话管理和加密
  • 医院信息化与智能化系统(11)
  • 阳振坤:云时代数据库的思考 | OceanBase发布会实录
  • 【高级IO】IO多路转接之epoll
  • 移植FreeRTOS实时操作系统(基于STM32F429)
  • Java运行时数据区
  • C++基础三
  • 华为大咖说丨如何通过反馈机制来不断优化大模型应用?
  • 销售拓客秘籍:线上渠道探寻与选择
  • 2024年【北京市安全员-A证】找解析及北京市安全员-A证考试试卷
  • 一周倒计时!2024中山智能家居峰会议程揭晓
  • 深入理解数据链路层:以太网帧格式、MAC地址、交换机、MTU及ARP协议详解与ARP欺骗探究
  • 300元蓝牙耳机性价比高的有哪些?学生平价蓝牙耳机推荐