Activity Context

本文探讨了在Android开发中如何正确使用Context来避免潜在的内存泄漏问题。通过对比XXActivity.this与getApplicationContext()的不同用途,阐述了为何在某些场景下更推荐使用getApplicationContext()。

在获取context的时候一般有两种选择,分别是XXActivity.this 和getApplicationContext();

一般情况下,最好选用getAppliactionContext()。

XXActivity.this 所获取的是该活动的context,而getApplicationContext()获取的是整个应用的context。使用前者可能会导致内存泄露。

例程:

ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION);

<pre name="code" class="java">ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION);



在这种情况下,checkSelfPermission 是应用全局的,如果将MainActivity的context传入其中,当MainActivity执行完需要回收时会因为还有传值在全局方法中导致不能被正常的回收。因此,应该使用getApplicationContext()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值