Android-Application中的Context和普通的Activity中的Context有什么区别呢?

Android-Application中的Context和普通的Activity中的Context有什么区别呢?

清晨说ぺ晚安 发布于 2017-02-08 字数 128 浏览 983 回复 2

在一个activity中有时可以随意的使用这两个context,但是android为什么这么设计,在程序中什么时候要用到Application的Context呢?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

想挽留 2017-08-07 2 楼

1.在全局对象中使用application context
2.和activity绑定过的service中。

能用activity context的地方都不用Application中的Context,因为后者容易造成内存泄漏,而且能够支持的方法和数据有限。

夜无邪 2017-02-11 1 楼

Application的Context是一个全局静态变量,SDK的说明是只有当你引用这个context的生命周期超过了当前activity的生命周期,而和整个应用的生命周期挂钩时,才去使用这个application的context。

一种推荐的用法就是应用程序注册广播broadcast时,使用这个context。

引用application context并不会导致内存泄漏。引用activity的context才会导致内存泄漏,当你的引用对象的生命周期超过了当前activity的生命周期时,系统回收你的activity时发现还有一个context的强引用,而不去销毁这个activity,导致内存泄漏,在开发过程中,需要非常重视这点。