关于 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

你可能感兴趣的:(关于 android 程序中的 context)