特别声明:本系列文章leicher著作权所有,转载请注明出处。
github:[https://github.com/leicher/Flowable][1]
极为简便的线程切换事件流。以Runnable为基本单位,方便理解。
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 联系我,谢谢。