1.handler源码,handler Handler, Looper的理解
2.rxjava机制 rxjava retrofit
3.view绘制流程
4.事件派发流程,Touch事件机制
5.MVP MVVM
6.InterService线程同步
7.Eventbus和广播区别
8.Android开发中常见的内存泄漏
对象没有反注册
数据库cursor没有关闭
Bitmap没有回收
ListView item没有复用
Handler在Activity中定义为非static的匿名内部类
1.造成泄漏的原因是拥有更长生命周期的对象持有短生命周期对象的强引用。
2.单例对象的生命周期是和应用一样的,Application的生命周期也是和应用一样的,所以如果它没有持有比它生命周期更短的对象的引用就不会 发生内存泄漏
正确使用Context
一般Context造成的内存泄漏,几乎都是当Context销毁的时候,却因为被引用导致销毁失败,而Application的Context对象可以理解为随着进程存在的,所以我们总结出使用Context的正确姿势:
1:当Application的Context能搞定的情况下,并且生命周期长的对象,优先使用Application的Context。
2:不要让生命周期长于Activity的对象持有到Activity的引用。
3:尽量不要在Activity中使用非静态内部类,因为非静态内部类会隐式持有外部类实例的引用,如果使用静态内部类,将外部实例引用作为弱引用持有。
网友评论