您的位置:首页 > 移动开发

App调试内存泄露之Context篇(上)

2014-06-07 21:12 351 查看
Context作为最基本的上下文,承载着Activity,Service等最基本组件。当有对象引用到Activity,并不能被回收释放,必将造成大范围的对象无法被回收释放,进而造成内存泄漏。

下面针对一些常用场景逐一分析。

1. CallBack对象的引用

先看一段代码:

1

2

3

4

5

6

7

8

9

de >@Overridede>

de >protectedvoid onCreate(Bundle state){de>

de > de>de >superde>de >.onCreate(state);de>

de > de>

de > de>de >TextView label =de>de >newde> de >TextView(de>de >thisde>de >);de>

de > de>de >label.setText(de>de >"Leaks are bad"de>de >);de>

de > de>

de > de>de >setContentView(label);de>

de >}de>

大家看看有什么问题吗?

没问题是吧,继续看:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

de >privatede> de >staticde> de >Drawable sBackground;de>

de > de>

de >@Overridede>

de >protectedde> de >voidde> de >onCreate(Bundle state){de>

de > de>de >superde>de >.onCreate(state);de>

de > de>

de > de>de >TextView label =de>de >newde> de >TextView(de>de >thisde>de >);de>

de > de>de >label.setText(de>de >"Leaks are bad"de>de >);de>

de > de>

de > de>de >ifde>de >(sBackground ==de>de >nullde>de >){de>

de > de>de >sBackground = getDrawable(R.drawable.large_bitmap);de>

de > de>de >}de>

de > de>de >label.setBackgroundDrawable(sBackground);de>

de > de>

de > de>de >setContentView(label);de>

de >}de>

有问题吗?

哈哈,先Hold住一下,先来说一下android各版本发布的历史:

1

2

3

4

5

6

de >/*de>

de >2.2 2010-3-20,Froyode>

.relpost{clear:both}

Tag:

Freenovo 发表于2014-06-07 21:12:00 | 编辑 | 分享 0

引用地址:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
-->
新的分享
章节导航