文档章节

Activity.this与getApplicationContext()在应用上的不同

公子彦
 公子彦
发布于 2016/03/03 21:53
字数 307
阅读 15
收藏 0

今天在写一个小例子的时候,其中用到了new AlertDialog.Bulider(XXXXX).setTitle("title").setMessage(mag).show

括号里面我用的是getApplicationContext()来获取当前activity的名称,结果运行程序的时候一直出错。

经过一个小时的排除,终于找到了错误原因,结果是括号里应该用Activity.this(假设Activity为当前activity名称)

为什么呢?

根据我在网上查到的资料,在这里简单总结一下。

1、首先我们需要知道AlertDialog.Bulider()括号里传入的应该是当前语句所在的Activity,而AlertDialog是依赖于一个View的,也就是说,它在这里仅存在一个activity周期。

2、下面我们看一下getApplicationContext()和activity.this,getApplicationContext()得到的是整个应用的生命周期,所以虽然它拿到的也是当前Activity,但是当前activity结束时,也许还有其他activity存在,getApplicationContext()并不会随之销毁。而activity.this则是仅存在于当前activity的这一个生命周期中。

由此可以看出,在两者的使用过程中还需要注意activity的生命周期问题。所以,activity.this可以用在AlertDialog中

,getApplicationcontext()却不能。

© 著作权归作者所有

共有 人打赏支持
公子彦
粉丝 2
博文 11
码字总数 6260
作品 0
程序员
私信 提问
Toast.maketext第一个参数context的问题

在Android工程中经常用到 Toast来显示提示,在maketext的第一个参数是要求传递一个context 那么问题来了 有时候是使用getApplicationContext(); 有时候是Activity.this 而有时候又直接是 this...

我叫leo-
2016/04/19
690
0
android学习—— context 和 getApplicationContext()

Context,中文直译为“上下文”。 浅论一下 context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求传递的 参数就是一个context,在这里我们传入的是thi...

fjabing
2014/02/19
125
0
android学习—— context 和 getApplicationContext()

在android中常常会遇到与context有关的内容 浅论一下context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求传递的 参数就是一个context,在这里我们传入...

sw3458856
2014/04/29
0
0
Caused by: android.view.WindowManager$BadTokenExce

有时候,如果采用getApplicationContext()传入Context,会出现如上错误。此时若采用传入当前activity.this,则不会出错。 两者的区别是: getApplicationContext()返回应用的上下文,其生命...

一别经年
2014/01/21
0
0
Android 开发中踩过的坑之七:尽量避免使用Acitivity当做Context

这坑容易埋, 却不容易发现. 比如启动一个页面, 需要用到一个单例的工具类Utils, 初始化Utils需要一个Context参数, 直接传入Activity.this. 然后这个单例的Utils就会一直持有Activity.this, ...

revfycd
2015/08/06
0
1

没有更多内容

加载失败,请刷新页面

加载更多

tac 与cat

tac从后往前看文件,结合grep使用

writeademo
今天
3
0
表单中readonly和dsabled的区别

这两种写法都会使显示出来的文本框不能输入文字, 但disabled会使文本框变灰,而且通过通过表单提交时,获取不到文本框中的value值(如果有的话), 而readonly只是使文本框不能输入,外观没...

少年已不再年少
今天
2
0
SpringBoot上传图片操作

首先有个上传文件的工具类 /** * 文件上传 * @param file * @param filePath * @param fileName * @throws Exception */public static void uploadFile(byte[] file, String ...

_liucui_
今天
6
0
DrawerLayout

public class MainActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener,OnFragmentInteractionListener{ public NavigationView navView; ......

安卓工程师王恒
今天
2
0
python精简笔记

python精简笔记-字符串基本用法 字符串常见用法: * encode() # 编码成bytes类型 * find() # 查找子串 * index() # 获取下标 * replace() # 替换子串 * len(string) # 返回字符串长度,...

平头哥-Enjoystudy
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部