首页 > 编程开发 > Android开发 > Android中Activity.this和getApplicationContext()的区别和选择
2016
05-17

Android中Activity.this和getApplicationContext()的区别和选择

在Android中常常会遇到传入Context给某个方法的情况,比如

要求传递的参数就是一个context,在这里我们传入的是this,就代表当前的Activity,即Activity.this。

既然需要context,为什么这里不写getApplicationContext()呢?这和它们的生命周期有关。getApplicationContext() 取的是这个应用程序的Context,生命周期是整个应用,而Activity.this取的是这个Activity的Context,它的生命周期相信大家都很清楚。

在该例中,AlertDialog应该是属于一个Activity的,在Activity销毁的时候它也就销毁了,不会再存在;但是,如果传入getApplicationContext(),就表示它的生命周期是整个应用程序,这显然超过了它的生命周期了。 所以,在这里我们只能使用Activity的this。

明白了以上的原理,可以总结出,和UI操作相关的不建议使用getApplicationContext(),一般都使用和Activity相关的context,如:View、Dialog等。其余的情况,都是建议使用getApplicationContext()。

下面一张图片可供参考:

Android中Activity.this和getApplicationContext()的区别和选择 - 第1张  | 扩软博客

参考地址:android中用getApplicationContext()会不会避免某些内存泄漏问题?

context和getApplicationContext()介绍

最后编辑:
作者:
百度ID:“度娘程序员”,博主。
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

发表回复

你的邮箱地址不会被公开,垃圾评论将被删除。

有人回复时邮件通知我