Android 轻量级RxJava线程切换事件流 支持多种操作符

特别声明:本系列文章leicher著作权所有,转载请注明出处。

github:[https://github.com/leicher/Flowable][1]

极为简便的线程切换事件流。以Runnable为基本单位,方便理解。


  •  next 系列操作符(添加一个Runnbale对象到队列中)
new Flowable()
    .next(Runnable run)
    .nextDelayed(Runnable run,long delay)
    .nextInMain(Runnable run)
    .nextInMainDelayed(Runnable run,long delay)
    .begin();
  •  front 系列操作符(置顶某一个Runable对象,可以是队列中的也可以是队列外的)  
new Flowable()
    .front(Runnable run)
    .frontDelayed(Runnable run,long delay)
    .frontInMain(Runnable run)
    .frontInMainDelayed(Runnable run,long delay)
    .begin();
  •  behind 系列操作符(把某一个Runnable对象放到目标Runnable后面)
new Flowable()
    .behind(Runnable run,Runnable target)
    .behindDelayed(Runnable run,long delay,Runnable target)
    .behindInMain(Runnable run,Runnable target)
    .behindInMainDelayed(Runnable run, long delay,Runnable target)
    .begin();
  •  frontOf 系列操作符(把一个Runnbale放到目标Runnable前面)   
new Flowable()
    .frontOf(Runnable run,Runnable target)
    .frontOfDelayed(Runnable run,long delay,Runnable target)
    .frontOfInMain(Runnable run,Runnable target)
    .frontOfInMainDelayed(Runnable run, long delay,Runnable target)
    .begin();
  •  设置传递数据
new Flowable<T>().setData(T t).next(new Flowable.Event<T>(){
        @Override
        public void onEvent(T t) {
        }
    }).begin();
  •  暂停事件流
new Flowable().pause();
  •  开始事件流
new Flowable().begin();
  •  注意内存泄露 不用了记得关闭
new Flowable().shutdown();
  •  事件的开始结束等监听
new Flowable().setListener(new Flowable.EventListener() {
            @Override
            public boolean onEventStart(Flowable flow, Runnable run) {
                // 这里返回false 则不执行当前的run
                return true;
            }
            @Override
            public void onEventEnd(Flowable flow, Runnable run) {
                // Runnable 的run()方法执行完后会回调
            }
            @Override
            public void onEventError(Flowable flow, Runnable run, Throwable e) {
                // Runnable 的run()方法抛出异常会回调
            }
        });
  •  取消某一个Runnable
new Flowable().cancel(Runnable run);
  •  在指定的线程中运行, 因为Flowable 实现了Runnable  
new Thread(new Flowable(false).begin()).start();

如果有什么BUG或者有您觉得需要改进的地方可 leicher@yeah.net 联系我,谢谢。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值