RxJava
来源:互联网 发布:沸点滑板怎么样知乎 编辑:程序博客网 时间:2024/06/02 01:59
RxJava 简单实用
来源:http://blog.csdn.net/qq_35064774/article/details/53057332
1、app build.gradle中添加
dependencies { compile 'io.reactivex.rxjava2:rxjava:2.0.0' compile 'org.reactivestreams:reactive-streams:1.0.0'}
2、测试代码
package com.test.main;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import org.reactivestreams.Subscriber;import org.reactivestreams.Subscription;import io.reactivex.BackpressureStrategy;import io.reactivex.Flowable;import io.reactivex.FlowableEmitter;import io.reactivex.FlowableOnSubscribe;import io.reactivex.functions.Consumer;import io.reactivex.functions.Function;/** * http://blog.csdn.net/qq_35064774/article/details/53057332 * RxJava 察者模式+迭代器模式+函数式编程 */public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity222222"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);// testOne();// testTwo();// test3();// test4(); } private void testOne() { //创建一个Flowable对象很简单,直接调用Flowable.create即可。 Flowable<String> flowable = Flowable.create(new FlowableOnSubscribe<String>() { @Override public void subscribe(FlowableEmitter<String> e) throws Exception { Log.i(TAG, "FlowableOnSubscribe subscribe: "); e.onNext("Hello Rxjava2");//发射了一个字符串"hello RxJava 2"。 e.onComplete(); } }, BackpressureStrategy.BUFFER);// 创建一个Subscriber Subscriber subscriber = new Subscriber<String>() { @Override public void onSubscribe(Subscription s) { Log.i(TAG, "onSubscribe: "); s.request(Long.MAX_VALUE);//调用request去请求资源,参数就是要请求的数 } @Override public void onNext(String s) { Log.i(TAG, "onNext: s= " + s);//onNext方法里面传入的参数就是Flowable中发射出来的。 } @Override public void onError(Throwable t) { } @Override public void onComplete() { Log.i(TAG, "onComplete: "); } }; flowable.subscribe(subscriber);//为了让”发射器”和”接收器”工作起来,我们还需要把他们组装在一起。 } private void testTwo() { Flowable<String> flowable = Flowable.just("hello Rxjava 2");//直接调用Flowable.just创建一个发射字符串的”发射器”。 Consumer consumer = new Consumer<String>() {//对于 Subscriber 来说,我们目前仅仅关心onNext方法 @Override public void accept(String s) throws Exception { Log.i(TAG, "accept: s =" + s); } }; flowable.subscribe(consumer); } private void test3() {//操作符 Flowable.just("map") .map(new Function<String, String>() { @Override public String apply(String s) throws Exception { Log.i(TAG, "apply: s = " + s); return s + "-day day up";// map 是把传递过来的结果末尾加上了签名,然后在传递给了订阅者。 } }) .subscribe(new Consumer<String>() { @Override public void accept(String s) throws Exception { Log.i(TAG, "accept: s = " + s); } }); } private void test4() {//map 操作符进阶 Flowable.just("map1") .map(new Function<String, Integer>() { @Override public Integer apply(String s) throws Exception { Log.i(TAG, "apply: s.hashCode() = " + s.hashCode()); return s.hashCode(); } }) .map(new Function<Integer, String>() { @Override public String apply(Integer integer) throws Exception { Log.i(TAG, "apply: integer = " + integer); return integer.toString(); } }).subscribe(new Consumer<String>() { @Override public void accept(String s) throws Exception { Log.i(TAG, "accept: s = " + s); } }); } private void test5() {//map 创建操作符// Observable.timer(3, TimeUnit.SECONDS, AndroidSchedulers.mainThread()).map(new Function<Long, Object>() {// })// Flowable.just("map1")// .map(new Function<String, Integer>() {// @Override// public Integer apply(String s) throws Exception {// Log.i(TAG, "apply: s.hashCode() = " + s.hashCode());// return s.hashCode();// }// })// .map(new Function<Integer, String>() {// @Override// public String apply(Integer integer) throws Exception {// Log.i(TAG, "apply: integer = " + integer);// return integer.toString();// }// }).subscribe(new Consumer<String>() {// @Override// public void accept(String s) throws Exception {// Log.i(TAG, "accept: s = " + s);// }// }); }}
0 1
- rxjava
- RXJava
- RXJava
- RXJava
- RxJava
- Rxjava
- RxJava
- RxJava
- Rxjava
- RxJava
- RxJava
- RxJava
- RxJava
- RxJava
- RxJava
- RxJava
- rxjava
- RxJava
- Valgrind工具:Linux 平台中调试 C C++ 内存泄漏
- 短信验证
- 选择排序 java实现
- 没有任何秘密的 API:Vulkan* 简介第 0 部分:前言
- 图像的边缘检测+角点特征检测+surf特征提取
- RxJava
- CAN-bus收发器TJA1040T典型接法
- MATLAB中关于图像特征提取相关内容
- 数字图像变换
- 判断匹配是否是8位或11位数字
- 用友BI解决方案 领先数据分析决策技术
- 【设计模式】创建型模式——原型模式(Prototype Pattern)
- ubuntu 时区 修改时间 保存 重启 变化等
- 解决Oracle数据库1521端口telnet不通问题