android dialog 有关token的问题
android中的dialog显示一般是显示在宿主context里面,但context有几种模式,我今天遇到问题就是在BroadcastReceiver广播里面构造对话框后显示出现的问题:android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application,意思就是传的token不正确,查看一下dialog的源码,追踪到在Window源码有说明,显示的View有几种Type,对话框可以通过setType设置:
1、FIRST_APPLICATION_WINDOW~LAST_APPLICATION_WINDOW类别,也就是我们常用的对话框类别,这个类别的dialog传进去的token的解析是:the token must be set to the token of the activity they are a part of (this will normally be done for you if token is null).,也就是说一般我们传进去的context应该是activity的,不然就会有token is null的异常
2、FIRST_SUB_WINDOW~ LAST_SUB_WINDOW类别,token must be the token of the window it is attached to.
3、FIRST_SYSTEM_WINDOW~LAST_SYSTEM_WINDOW类别, They should not normally be used by applications, and a special permission is required to use them.系统类别的对话框,这次在广播里面就用了这个级别,异常就不出现了。
还有一个PS:在广播里面新建的对话框,发现下一次广播过来时调用dismiss对话框没有关闭,断点发现每次广播都会新建一个对话框实例,然后把对话框设置为static类型就唯一了,呵呵,记录一下
记录自己遇到的问题以及解决方法,水平有限,欢迎拍砖指正~~~
android dialog 有关token的问题的更多相关文章
- android dialog,popupwindow,toast窗口的添加机制
Dialog 窗口添加机制 代码示例 首先举两个例子: 例子1 在Activity中 @OnClick(R.id.but) void onClick() { Log.d("LiaBin&qu ...
- Android Dialog使用举例
在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一 ...
- Android Dialog 创建上下文菜单
Android Dialog中的listview创建上下文菜单 listView.setOnCreateContextMenuListener(new OnCreateContextMenuListe ...
- Android控件——7种形式的Android Dialog使用举例(转载)
在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一 ...
- Android Dialog对话框的七种形式的使用
参考资料:http://www.oschina.net/question/54100_32486 注:代码进行了整理 在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询 ...
- 8种形式的Android Dialog使用举例
在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一 ...
- android Dialog实例
Dialog类 public class DialogUtil { public static Dialog EditDialog(Activity context,View view){ final ...
- android dialog
/** * @Title MenuTest.java * @package com.example.standardview * @since * @version 1.0.0 * @author V ...
- android dialog 模拟新浪、腾讯title弹框效果
http://blog.csdn.net/jj120522/article/details/7764183 首先我们看一下新浪微博的效果(其它就是一个dialog): 点 ...
随机推荐
- 数据处理之CoreData
一.CoreData数据库框架与Sqlite对比 Sqlite: 1.基于C接口, 需要使用sql语句, 代码繁琐 2.在处理大量数据时, 表关系更直观 3.在OC中不是可视化的 CoreData: ...
- SimpleAdapter的使用
SimpleAdapter的使用 SimpleAdapter是一个简单的适配器,该适配器也继承了BaseAdapter,对于布局是固定而言,使用简单适配器开发时非常简单了,由于Simple ...
- ARMLinux下Alignment trap的一些测试 【转自 李迟的专栏 CSDN http://blog.csdn.net/subfate/article/details/7847356
项目中有时会遇到字节对齐的问题,英文为“Alignment trap”,如果直译,意思为“对齐陷阱”,不过这个说法不太好理解,还是直接用英文来表达. ARM平台下一般是4字节对齐,可以参考文后的给出的 ...
- HW职责 (Hardware Engineer)
硬件设计就是根据产品经理的需求PRS(Product Requirement Specification),在COGS(Cost of Goods Sale)的要求下,利用目前业界成熟的芯片方案或者技 ...
- weixin 公众平台开发
http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html http://weixin.senparc.com/
- fushioncharts 使用教程要点---使用JSON数据方式
1.建立图表步骤: A.下载fushionChart,引入FusionCharts.js和FusionChartsExportComponent.js文件 B.建立图表对象 var chart1 = ...
- 安装Eclipse环境变量的配置,
window7系统下的 步骤: 第一步:先安装JDK(记住你安装的位置)我安装在D:\Program Files\Java 目录下. 第二步:JDK安装好后,配置环境变量(重 ...
- php基础的一点注意事项
1.要弄懂"~"运算符的计算方法,首先必须明白二进制数在内存中的存放形式,二进制数在内存中是以补码的形式存放的 另外正数和负数的补码不一样,正数的补码,反码都是其本身,即: 正数9 ...
- DIV+CSS布局网站基本框架
html代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- D3的参考样例
官网进去就可以看到很多样例了.但是最喜欢的是mbostock的http://bl.ocks.org 然后其它的也有一些: 看上去很酷--http://www.visualcinnamon.com/po ...