文档章节

使用getApplication()作为上下文的对话框抛出“无法添加窗口-令牌null不适用于应用程序”

 法国红酒甜
发布于 07/10 20:26
字数 724
阅读 33
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

问题:

My Activity is trying to create an AlertDialog which requires a Context as a parameter. 我的活动试图创建一个AlertContext,它需要一个Context作为参数。 This works as expected if I use: 如果我使用,这可以按预期工作:

AlertDialog.Builder builder = new AlertDialog.Builder(this);

However, I am leery of using "this" as a context due to the potential for memory leaks when Activity is destroyed and recreated even during something simple like a screen rotation. 但是,我很乐意使用“ this”作为上下文,因为即使在诸如屏幕旋转之类的简单操作中销毁并重新创建Activity时,也有可能发生内存泄漏。 From a related post on the Android developer's blog : 摘自Android开发者博客上的相关文章

There are two easy ways to avoid context-related memory leaks. 有两种简单的方法可以避免上下文相关的内存泄漏。 The most obvious one is to avoid escaping the context outside of its own scope. 最明显的是避免将上下文转义超出其自身范围。 The example above showed the case of a static reference but inner classes and their implicit reference to the outer class can be equally dangerous. 上面的示例显示了静态引用的情况,但是内部类及其对外部类的隐式引用可能同样危险。 The second solution is to use the Application context. 第二种解决方案是使用Application上下文。 This context will live as long as your application is alive and does not depend on the activities life cycle. 只要您的应用程序处于活动状态,并且不依赖于活动生命周期,该上下文将一直存在。 If you plan on keeping long-lived objects that need a context, remember the application object. 如果计划保留需要上下文的长期对象,请记住该应用程序对象。 You can obtain it easily by calling Context.getApplicationContext() or Activity.getApplication(). 您可以通过调用Context.getApplicationContext()或Activity.getApplication()轻松获得它。

But for the AlertDialog() neither getApplicationContext() or getApplication() is acceptable as a Context, as it throws the exception: 但是对于AlertDialog() getApplicationContext()getApplication()都不能作为上下文使用,因为它会引发异常:

"Unable to add window — token null is not for an application” “无法添加窗口-令牌null不适用于应用程序”

per references: 1 , 2 , 3 , etc. 每引用: 123 ,等等。

So, should this really be considered a "bug", since we are officially advised to use Activity.getApplication() and yet it doesn't function as advertised? 那么,由于我们被正式建议使用Activity.getApplication()却不能如所宣传的那样起作用,因此这真的应该被视为“错误”吗?

Jim 吉姆


解决方案:

参考一: https://stackoom.com/question/OJxj/使用getApplication-作为上下文的对话框抛出-无法添加窗口-令牌null不适用于应用程序
参考二: https://oldbug.net/q/OJxj/Dialog-throwing-Unable-to-add-window-token-null-is-not-for-an-application-with-getApplication-as-context
粉丝 0
博文 882
码字总数 0
作品 0
成都
私信 提问
加载中
请先登录后再评论。
Netty那点事(三)Channel与Pipeline

Channel是理解和使用Netty的核心。Channel的涉及内容较多,这里我使用由浅入深的介绍方法。在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制。为了避免枯燥,借用一下《盗梦空间》的...

黄亿华
2013/11/24
2W
22
访问安全控制解决方案

本文是《轻量级 Java Web 框架架构设计》的系列博文。 今天想和大家简单的分享一下,在 Smart 中是如何做到访问安全控制的。也就是说,当没有登录或 Session 过期时所做的操作,会自动退回到...

黄勇
2013/11/03
3.6K
8
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
6.1K
18
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
702
1
我的架构演化笔记 功能1: 基本的用户注册

“咚咚”,一阵急促的敲门声, 我从睡梦中惊醒,我靠,这才几点,谁这么早, 开门一看,原来我的小表弟放暑假了,来南京玩,顺便说跟我后面学习一个网站是怎么做出来的。 于是有了下面的一段...

强子哥哥
2014/05/31
976
3

没有更多内容

加载失败,请刷新页面

加载更多

创建具有列表理解的字典 - Create a dictionary with list comprehension

问题: I like the Python list comprehension syntax. 我喜欢Python列表理解语法。 Can it be used to create dictionaries too? 它也可以用来创建字典吗? For example, by iterating over......

技术盛宴
今天
15
0
从JS数组中删除重复的值[duplicate] - Remove duplicate values from JS array [duplicate]

问题: This question already has answers here : 这个问题已经在这里有了答案 : Get all unique values in a JavaScript array (remove duplicates) (79 answers) 获取JavaScript数组中的......

法国红酒甜
今天
11
0
如何使用AngularJS在浏览器的控制台中访问$ scope变量?

问题: I would like to access my $scope variable in Chrome's JavaScript console. 我想在Chrome的JavaScript控制台中访问$scope变量。 How do I do that? 我怎么做? I can neither see ......

fyin1314
今天
18
0
ImageMagick - 添加水印

背景 最近制作思维导图想添加自己的水印,网上很多例子都是使用ImageMagick来完成。但是不少代码在本地并不可行。经过一番试验,找到两个方法。 方法一 代码 stackoverflow方法改良: conver...

wffger
今天
11
0
OSChina 周四乱弹 —— 到底是怎样的饕餮盛宴在等待着我!

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 小小编辑推荐 :《你 能 來 保 護 我 的 世 界 嘛》- 歪门 《你 能 來 保 護 我 的 世 界 嘛》- 歪门 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
77
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部