关于 android 程序中的 context

今天看到 公司项目里面的代码

就想着记录一下这个问题,顺便能给他人以帮助。

就是主要是
activity context , application context 的这样一个用法和区别

activity context 是跟着 activity的生命周期去走的
application context 的跟着整个应用程序的生命周期去走的

不要以为 这2个随便用就好了
虽然都可以以实现程序功能为目的, 但是很可能造成很多问题
比如:内存泄露

  1. context 内存泄露,
    有时候 当activity 销毁了。但是 context 还被其他持有引用, 这就造成了context 内存泄露

主要是 持有引用的问题, 才会导致 context 不能释放

如果要一直持有引用的话 就用 application context 好些了。

类似的 有些对象的持有引用

XXManager = (XXManager) getSystemService(Context.XX);
改成:
XXManager = (XXManager) getApplicationContext().getSystemService(Context.XX);

类似 工具类里面 context的持有引用

说到这里,又牵扯的内存泄露的问题了

普遍的
1.用完没有释放
2. 监听没有remove 等问题
3. handler
4. thread

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空白的泡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值