阅读 194

如何高效学习Android架构组件(一):Lifecycle

高效学习模型

what-->why-->how 模型
是什么?-->为什么使用?-->如何使用?-->实现原理-->总结分享(学以致用)
复制代码

一.Lifecycle是什么?

Lifecylce:生命周期感知型组件,通过感知Activity/Fragment的生命周期状态而调整行为;
复制代码

二.为什么使用Lifecycle?

场景分析1:
  如多个Activity需要在onStart(),onResume(),onPause(),onSopt()中执行某些相同的业务逻辑操作;
  此时可能会在某个Activity遗漏写代码,不可避免该情况发生,导致存在代码一致性问题,需要统一管理;
  解决一致性问题:可通过接口回调实现,但会引入代码入侵问题;
场景分析2:
  代码中使用Handler,会持有context对象,销毁是需要在onDestroy()中移除,若未移除容易引发内存泄漏;
为了解决上述场景问题,从而引入了lifecycle;
lifecycle的作用如下:
 1.解决统一管理问题(一致性问题);
 2.解决代码入侵问题;
 3.解决内存泄漏问题;
复制代码

三.如何使用Lifecycle?

1.自定义Observer实现LifecycleObserver接口,在需要统一实现的方法中添加注解:
  public class MyObserver implements   LifecycleObserver {
  @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
  public void connectListener() {
    ...
  }
 @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
  public void disconnectListener() {
    ...
   }
 }
2.在Activity/Fragment中添加观察:
getLifecycle().addObserver(new MyObserver());
复制代码

四.实现原理

五.总结分享

文章分类
Android
文章标签