Context上下文

上下文(Context)在Android中扮演着重要角色,它是应用程序中各个组件如Activity、Service、Application与系统交互的基础。Context是个抽象类,实际使用中通常通过其子类如Activity和Application获取。Activity和Application作为Context时存在显著差异:Activity的Context与UI紧密相关,而Application的Context在整个应用程序生命周期内全局有效。正确选择使用场景避免潜在的问题,例如UI操作应使用Activity Context,避免因错误使用导致内存泄漏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Context字面意思上下文,或者叫做场景,也就是用户与操作系统操作的一个过程,比如你打电话,场景包括电话程序对应的界面,以及隐藏在背后的数据;

从程序的角度上来理解:Context是个抽象类,而Activity、Service、Application等都是该类的一个实现。

在仔细看一下上图:Activity、Service、Application都是继承自ContextWrapper,而ContextWrapper内部会包含一个base context,由这个base context去实现了绝大多数的方法。

一、Activity和Application作为context时的区别。当我们需要Context的时候,如果是在当前的Activity中,我们就大多t直接使用this,在匿名内部类中,因为this不能用,所以需要写成,XXActivity.this.很多哥们会偷懒,直接来个getApplictionContext!

但是大家有没有想过xxActivity.this 和getApplictionContext的区别在哪里呢 ?

(1)、首先,xxActivity.this 和getApplictionContext 返回的肯定不是同一个对象,一个是当前Activity的上下文,一个是项目

Application的 上下文

(2)、既然区别这么明显,那么各自的使用场景肯定不同,乱使用可能会带来一些问题。

只要把握住一点,凡是跟UI相关的,都应该使用Activity做为Context来处理;其他的一些操作,Service,Activity,Application等实例都可以,当然了,注意Context引用的持有,防止内存泄漏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值