美文网首页
Android技术点

Android技术点

作者: 简单爱呵呵 | 来源:发表于2017-06-23 17:15 被阅读0次

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中使用非静态内部类,因为非静态内部类会隐式持有外部类实例的引用,如果使用静态内部类,将外部实例引用作为弱引用持有。

相关文章

网友评论

      本文标题:Android技术点

      本文链接:https://www.haomeiwen.com/subject/vvwccxtx.html