RX
nicolelili1
这个作者很懒,什么都没留下…
展开
-
RX操作符之Observable的创建方式一(just、from、repeat、repeatWhen)
以下的创建方法不需要手动再重新调用Subscriber中的方法 一、just创建发送指定值的Observerble,just只是简单的原样发射,将数组或Iterable当做单个数据。如果传递的值为null,则发送的Observable的值为null。参数最多为9个 Observable myObservable = Observable.just("just1","just1","原创 2016-07-27 11:48:30 · 24102 阅读 · 0 评论 -
RX操作符之辅助操作一(materialize、dematerialize、timestamp、serialize、replay、observeOn、subscribeon、dooneach)
一、materializeMaterialize将数据项和事件通知都当做数据项发射,Dematerialize刚好相反。一个合法的有限的Obversable将调用它的观察者的onNext方法零次或多次,然后调用观察者的onCompleted或onError正好一次。Materialize操作符将这一系列调用,包括原来的onNext通知和终止通知onCompleted或onError都转换为一个原创 2016-08-09 18:09:57 · 2688 阅读 · 0 评论 -
RX操作符之辅助操作符三(using、getIterator、toFuture、toIterator、toMap、toMultiMap、nest)
一、using创建一个只在Observable生命周期存在的资源 //一个用户创建一次性资源的工厂函数 Func0 resourceFactory = new Func0() { @Override public Integer call() { return 1;原创 2016-08-10 16:30:59 · 1785 阅读 · 0 评论 -
RX操作之辅助操作符二(doonunsubscribe、doOnCompleted、doOnError、doOnTerminate、finallyDo、delay、delaySubscription)
一、doOnUnSubscribe取消订阅时的监听 Observable observable = Observable.just(1,2,3,4,5,6); Subscriber subscriber = new Subscriber() { @Override public void onNext(Integer v)原创 2016-08-10 11:16:16 · 11339 阅读 · 1 评论 -
RX操作之条件和布操作符(amb、defaultIfEmpty、skipUntil、skipWhile、takeUntil、takeWhile、contains、all、exists、isEmpty)
一、amb当你传递多个Observable给Amb时,它只发射其中一个Observable的数据和通知:首先发送通知给Amb的那个,不管发射的是一项数据还是一个onError或onCompleted通知。Amb将忽略和丢弃其它所有Observables的发射物。Long[]items = {6l,7l,8l,9l,10l}; Observable observable原创 2016-08-10 18:43:23 · 2851 阅读 · 0 评论 -
RX操作符之算术和聚合操作(averageInteger、min、max、count、sum、contact、reduce、collect)
一、averageInteger计算Observable的发射数字的平均值。Average操作符操作符一个发射数字的Observable,并发射单个值:原始Observable发射的数字序列的平均值。这个操作符不包含在RxJava核心模块中,它属于不同的rxjava-math模块。它被实现为四个操作符:averageDouble, averageFloat, averageInteger, a原创 2016-08-11 12:08:29 · 2595 阅读 · 0 评论 -
RX之异步操作(start、toAsync、startFuture、deferFuture、fromAction、fromRunnable、forEachFuture、runAsync)
需要在buld.gradle中加入compile 'io.reactivex:rxjava-async-util:0.21.0'一、start返回一个Observable,它发射一个类似于函数声明的值。编程语言有很多种方法可以从运算结果中获取值,它们的名字一般叫functions, futures, actions, callables, runnables等等。在Start目录下的这原创 2016-08-11 18:59:24 · 3398 阅读 · 0 评论 -
RX操作符之连接操作ConnectObservable(publish、connect、replay、refCount)
一、publish将普通的Observable转换为可连接的Observable。可连接的Observable (connectable Observable)与普通的Observable差不多,不过它并不会在被订阅时开始发射数据,而是直到使用了Connect操作符时才会开始。用这种方法,你可以在任何时候让一个Observable开始发射数据。 Observable observa原创 2016-08-12 14:35:26 · 2826 阅读 · 0 评论 -
RX操作符之字符串操符StringObservable 类(byLine、decode、encode、join、split、stringConcat)
StringObservable 类包含一些用于处理字符串序列和流的特殊操作符,需要在build.gradle中加入compile 'com.netflix.rxjava:rxjava-string:0.20.7'或在lib注:如果已经加入了compile 'io.reactivex:rxjava:1.0.9',再导入compile 'com.netflix.rxjava:rxjava-s原创 2016-08-12 19:00:12 · 2594 阅读 · 0 评论 -
RxAnroid之UI控件(View、Widget)RxBinding(同时异步执行多个Observable、同时异步执行多个任务)
RxBinding是Android种UI控件的Api将RxJava应用于Android的好处就是更方便地组合各种异步操作,将Android中复杂的UI交互简单化,尤其是当触发多重UI事件时。还可以使用RxJava中过滤、结合、异步、条件等方法,是逻辑简洁、代码易读化。RX对View的操作需要导入compile 'com.jakewharton.rxbinding:rxbinding:0.4原创 2016-08-16 18:29:18 · 1900 阅读 · 0 评论 -
RX操作符之错误处理(catch[onErrorReturn、onErrorResumeNext、onExceptionResumeNext]、retry、retryWhen)
一、catch从onError通知中恢复发射数据。Catch操作符拦截原始Observable的onError通知,将它替换为其它的数据项或数据序列,让产生的Observable能够正常终止或者根本不终止。1.onErrorReturn让Observable遇到错误时发射一个特殊的项并且正常终止。 Observable observable = Observab原创 2016-08-08 15:55:06 · 12954 阅读 · 0 评论 -
RX操作符之结合操作(startWith、merge、mergeDelayError、zip、join、groupjoin、switchOnNext)
一、startWith在数据序列的开头插入一条指定的项 Integer[]items = {6,7,8,2,3,4,5}; Observable myObservable = Observable.from(items) .startWith(1); Subscriber mySubscriber =new Subs原创 2016-08-08 15:14:25 · 3751 阅读 · 3 评论 -
RX操作符之过滤操作二(firstOrDefault、single、elementAt、sample、throttleFirst、throwttleLast、throttleWithTimeout)
一、firstOrDefault传递一个谓词函数给firstOrDefault,然后发射这个函数判定为true的第一项数据,如果没有数据通过了谓词测试就发射一个默认值。 Integer[]items = {6,7,81,2,3,4,5}; Observable myObservable = Observable.from(items) .原创 2016-08-07 12:28:21 · 3079 阅读 · 0 评论 -
RX操作符之Observable的创建方式二(defer、range、interval、timer、Empty、Never、Throw)
一、deferDefer操作符会一直等待直到有观察者订阅它,然后它使用Observable工厂方法生成一个Observable。它对每个观察者都这样做,因此尽管每个订阅者都以为自己订阅的是同一个Observable,事实上每个订阅者获取的是它们自己的单独的数据序列。 String[]items = {"just1","just2","just3","just4","j原创 2016-07-27 15:06:48 · 8926 阅读 · 0 评论 -
RX操作符之过滤操作一(debounce、filter、ofType、takeLast、last、lastOrDefault、takeLastBuffer、skip、skipLast、take)
一、debounce仅在过了一段指定的时间还没发射数据时才发射一个数据,Debounce操作符会过滤掉发射速率过快的数据项。注:这个操作符会会接着最后一项数据发射原始Observable的onCompleted通知,即使这个通知发生在你指定的时间窗口内(从最后一项数据的发射算起)。也就是说,onCompleted通知不会触发限流。 Integer[]items = {1,2,3原创 2016-08-03 18:50:54 · 2179 阅读 · 0 评论 -
RXAndroid入门
使用如下android需要在build.gradle中加入compile 'io.reactivex:rxandroid:1.2.1'一、在UI现场观察 //需要导入compile 'io.reactivex:rxandroid:1.2.1' Observable averageObservable = MathObservable.sumI原创 2016-08-15 15:31:07 · 614 阅读 · 0 评论 -
RxAndroid之app的生命周期管理RxLifecycle
管理Activity(Fragment、dialogFragment)的生命周期需要在build.gradle中加入compile 'com.trello:rxlifecycle-components:0.6.1'原创 2016-08-16 11:31:39 · 8438 阅读 · 0 评论 -
RX的使用一:RXjava初级入门
RX是一个响应式的编程,提供了一系列的操作符,你可以使用它们来过滤(filter)、选择(select)、变换(transform)、结合(combine)和组合(compose)多个Observable,这些操作符让执行和复合变得非常高效。主要是通过观察者Observer订阅subscribe可观察对象Observable实现的。原创 2016-07-26 15:59:14 · 830 阅读 · 0 评论 -
RX操作符之对Observable发射的数据执行变换操作一(map、cast、flatmap、flatmapiteriable、switchmap)
一、mapMap操作符对原始Observable发射的每一项数据应用一个你选择的函数,然后返回一个发射这些结果的Observable。 private void testMap() { String[]items = {"just1","just2","just3","just4","just5","just6"}; Observable myObser原创 2016-08-02 10:54:00 · 3664 阅读 · 0 评论 -
RX操作符之对Observable发射的数据执行变换操作二(scan、groupby、buffer、window)
一、scan类似于1到n个数字求和,每次都只计算前两项的和,然后再将这个结果与后面一项相加。Scan操作符对原始Observable发射的第一项数据应用一个函数,然后将那个函数的结果作为自己的第一项数据发射。它将函数的结果同第二项数据一起填充给这个函数来产生它自己的第二项数据。它持续进行这个过程来产生剩余的数据序列。这个操作符在某些情况下被叫做accumulator。 Intege原创 2016-08-02 15:37:53 · 1357 阅读 · 0 评论 -
RxAndroid之操作数据库SqlBrite(RXAndroid实现数据库的增、删、改、查)
注:参考资料:https://github.com/ReactiveX/RxAndroid/wiki#removed https://github.com/square/sqlbrite原创 2016-08-17 15:43:45 · 3055 阅读 · 0 评论 -
RXAndroid之RxSharedPreference的使用
//创建sharedPreference实例 SharedPreferences mySP = getApplicationContext().getSharedPreferences("rx_sp_test", Context.MODE_PRIVATE); mySP.edit().putString("test_string","this is test rx s原创 2016-08-17 17:54:01 · 1696 阅读 · 0 评论 -
组件化封装思想实战Android App总结七App公共模块之视频SDK模块开发六API层讲解及封装
一、1、需要封装的内容只封装这些东西,需要对它再进行一层封装吗?其实业务逻辑层包含了许多自己的逻辑,有很多的方法和逻辑是不需要调用者知道的,所以通过API层再对它进行包装给外部而隐藏掉外部不关心的方法或者接口,这样对调用者来说也省去了学习的成本。2、3、友盟的外观模式下图是友盟统计下的各个模块。友盟统计下有很多个子模块,如果每个模块都有一个文档教你如何去使用,...转载 2019-04-12 15:45:59 · 240 阅读 · 0 评论