Android中的context使用(getApplicationContext和Activity.this的区别和使用)

1、首先两者的区别:

  1、getApplicationContext()返回的是应用的上下文,隶属于整个应用,应用结束时才摧毁。

  2、Activity.this返回到是Activity的上下文,隶属于Activiy,当Activity实例摧毁时它就跟着摧毁了。

2、两者的使用:

  1、 getApplicationContext()是跟Windows无关的,所以不能做对话框的上下文,它可以做全局数据操作的上下文。

  2、Activity.this是跟Windows相关的,所以新建对话框的需要使用Activity.this。否则会报错。


3、Context的应用场景



大家注意看到有一些NO上添加了一些数字,其实这些从能力上来说是YES,但是为什么说是NO呢?下面一个一个解释:

数字1:启动Activity在这些类中是可以的,但是需要创建一个新的task。一般情况不推荐。

数字2:在这些类中去layout inflate是合法的,但是会使用系统默认的主题样式,如果你自定义了某些样式可能不会被使用。

数字3:在receiver为null时允许,在4.2或以上的版本中,用于获取黏性广播的当前值。(可以无视)




建议:尽量不要使用getBaseContext()。这里有一篇关于Context的文章比较好大家可以看看


转载地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值