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

被折叠的 条评论
为什么被折叠?



