高效学习模型
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());
复制代码
四.实现原理
五.总结分享
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END