RxlifeRecycler使用入门

RxLifeRecycle
Lifecycleable 所有生命周期控制类的父类,是一个接口
提供了这个方法
Subject<E> provideLifecycleSubject();
Subject<T> extends Observable<T> implements Observer<T>{}

所有被生命周期控制的方法都保存了一个 BehaviorSubject 实例, 它只会保存最新的一个事件,其他事件他都不会care
BehaviorSubject<FragmentEvent> mLifecycleSubject = BehaviorSubject.create();

ActivityLifecycleForRxLifecycle implements Application.ActivityLifecycleCallbacks
mApplication.registerActivityLifecycleCallbacks(mActivityLifecycleForRxLifecycle);
这个类只要一用Application注册就可以监听Activity的生命周期

ActivityLifecycleForRxLifecycle 中的
Subject<ActivityEvent> obtainSubject(Activity activity) 可以获取到Actiivty中的BehaviorSubject对象

在对应的生命周期方法中并且传入生命周期标志
obtainSubject(activity).onNext(ActivityEvent.DESTROY)
所有只要Activity的生命周期方法执行,onNext就会执行,并且传入对应的 事件
此时等于BehaviorSubject监听到了Activity的所有事件,并保存最后发生的那个事件

此时使用
RxLifecycleUtils .bindToLifecycle(mRootView){
RxLifecycleAndroid.bindActivity(((ActivityLifecycleable) lifecycleable).provideLifecycleSubject())
}

对于Fragment,只要注册了这个FragmentLifecycleForRxLifecycle就可以监听到Fragment的生命周期
((FragmentActivity) activity).getSupportFragmentManager().registerFragmentLifecycleCallbacks(mFragmentLifecycle.get(), true);
就可以实现和Activity一样的逻辑
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值