BATJ30道经典常见Android 高级面试题及答案( 五 )
III. observer 我们在使用监听器的时候 , 往往是addxxxlistener , 但是当我们不需要的时候 , 忘记removexxxlistener , 就容易内存leak 。
广播没有unregisterrecevier
IV.各种数据链接没有关闭 , 数据库contentprovider , io , sokect等 。 cursor
V.内部类:
java中的内部类(匿名内部类) , 会持有宿主类的强引用this 。
所以如果是new Thread这种 , 后台线程的操作 , 当线程没有执行结束时 , activity不会被回收 。
Context的引用 , 当TextView 等等都会持有上下文的引用 。 如果有static drawable , 就会导致该内存无法释放 。
VI.单例
单例 是一个全局的静态对象 , 当持有某个复制的类A是 , A无法被释放 , 内存leak 。
回到顶部
3.如何避免 OOM 异常
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 孙尚香|孙尚香异界灵契皮肤上线,而玩好他需要解决5大常见操作问题
- 仙剑2|经典游戏《仙剑2》苏媚的梦蛇才是最大BUG,效果叠加一招带走千叶
- 魔兽世界|魔兽世界:“时空漫游”将改版,增加野外内容,回归经典
- 复古传奇|复古传奇1.85版本还原经典 人气火爆 超高爆率 等你来战!
- |大话2经典版:这两位神壕可以说是游戏里暴力美学“典范”的存在了!
- 射击游戏|可能被你忽略了,这十款才是最经典的第三人称射击游戏
- 魔兽世界|魔兽世界各个种族NPC经典台词有哪些
- 吃鸡游戏|LOL手游:世界赛经典重现!“复仇之战”圆RNG的S7鸟巢遗憾
- 手机游戏|冰雪传世群英版手游:经典三职业元神可以免费获取?
- 明日之后|热血传奇:最常见的三大PK原因,快来看看有没有你当年PK的原因