Android响应式编程RxAndroid(1):简单例程
响应式Android编程开发,在github上的项目地址:https://github.com/ReactiveX/RxAndroid,设计原则类比Java观察者模式,给出一个简单例子,假设一个数据源,观察者观察数据源,然后做出简单的动作比如输出。
测试的MainActivity.java:
package zhangphil.app;import android.app.Activity;
import android.os.Bundle;
import android.util.Log;import java.util.ArrayList;
import java.util.List;import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;public class MainActivity extends Activity {//假设一个数据源private String TAG = "zhangphil@csdn";Observer<List<String>> observer = new Observer<List<String>>() {@Overridepublic void onSubscribe(Disposable d) {//Log.d(TAG, d.toString());}@Overridepublic void onNext(List list) {Log.d(TAG, "onNext - Start");for (int i = 0; i < list.size(); i++) {Log.d(TAG, String.valueOf(list.get(i)));}Log.d(TAG, "onNext - End");}@Overridepublic void onComplete() {Log.d(TAG, "onComplete");}@Overridepublic void onError(Throwable e) {Log.e(TAG, e.toString(), e);}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);List<String> lists = new ArrayList<>();for (int i = 0; i < TAG.length(); i++) {lists.add(String.valueOf(TAG.charAt(i)));}//为一个数据源增加一个观察者//观察者是observer,observer吐出观察到的数据Observable.just(lists).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(observer);}
}
代码运行输出:
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: onNext - Start
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: z
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: h
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: a
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: n
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: g
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: p
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: h
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: i
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: l
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: @
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: c
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: s
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: d
02-28 13:55:00.571 10845-10845/zhangphil.app W/ActivityThread: AppLock checkAppLockState isAppLocked = false pkgName = zhangphil.app showWhenLocked = false
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: n
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: onNext - End
02-28 13:55:00.571 10845-10845/zhangphil.app D/zhangphil@csdn: onComplete

Android响应式编程RxAndroid(1):简单例程相关推荐

  1. Android响应式编程(一)RxJava前篇[入门基础]

    1.RxJava概述 ReactiveX与RxJava 在讲到RxJava之前我们首先要了解什么是ReactiveX,因为RxJava是ReactiveX的一种java实现. ReactiveX是Re ...

  2. 响应式编程android,Android响应式编程(一)RxJava[入门基础]

    1.RxJava概述 ReactiveX与RxJava 在讲到RxJava之前我们首先要了解什么是ReactiveX,因为RxJava是ReactiveX的一种java实现. ReactiveX是Re ...

  3. 赠书:响应式编程到底是什么?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 最近几年,随着Go.Node 等新语言.新技术的出现,J ...

  4. Android【Retrofit(HTTP客户端),RxJAVA(响应式编程)】

    1 Retrofit(HTTP客户端) 1.1 简介 我们项目当中的每个app都需要用到网络和服务器进行交互,在Android项目开发中使用HTTP协议完成通信的话,基本上都要用到OkHttp或者Re ...

  5. Android什么是函数,什么是函数响应式编程(JavaAndroid版本)

    什么是函数响应式编程(Java&Android版本) 函数响应式编程(FRP)为解决现代编程问题提供了全新的视角.一旦理解它,可以极大地简化你的项目,特别是处理嵌套回调的异步事件,复杂的列表过 ...

  6. 响应式编程在Android 中的一些探索

    响应式在前端领域已经变得十分流行,很多主流框架都采用响应式来进行页面的展示刷新.本文主要是探索一下响应式在移动端Android上的一些实践,包括对响应式思想的理解,以及目前Android上实现响应式的 ...

  7. 响应式编程在Android中的应用

    响应式编程简介 响应式编程是一种基于异步数据流概念的编程模式.数据流就像一条河:它可以被观测,被过滤,被操作,或者为新的消费者与另外一条流合并为一条新的流. 响应式编程的一个关键概念是事件.事件可以被 ...

  8. Reactive 响应式编程简单使用

    Reactive Stream 模型 了解reactive stream(Flow类) 在介绍java版本的reactive stream之前,我们先回顾一下reactive stream需要做哪些事 ...

  9. 响应式编程以及反应式编程框架Reactor3的简单介绍

    前言 Reactor 3是一个围绕Reactive Streams规范构建的库,它在JVM上引入了响应式编程的一个范例.目前Spring5 引入的Webflux就是reactor 3实现的一个响应式w ...

最新文章

  1. Java NIO系列教程(三) Buffer
  2. 通过Chrome模拟和调试网速慢的情况来限制一些P2P视频网站上传速度占满的情况...
  3. Java Instanceof
  4. LeetCode MySQL 1270. 向公司CEO汇报工作的所有人
  5. WPF TextBox 正则验证 大于等于0 小于等于1 的两位小数
  6. html图片圆点切换,JQuery和html+css实现带小圆点和左右按钮的轮播图实例
  7. .ne中的控制器循环出来的数据如何显示在视图上_让不懂编程的人爱上iPhone开发系列2 iOS12+Swift4.2版-Checklists-16...
  8. LeetCode:每日一题(2020.4.14)
  9. ios游戏开发 Sprite Kit教程:初学者 3
  10. html背景颜色代码格式,html常用背景颜色代码.docx
  11. 一行python代码带你装B
  12. 图像增强—彩色增强技术
  13. gis坐标|度分秒与十进制转换公式
  14. Oracle使用游标更新数据 Oracle游标之select for update和where current of 语句
  15. opencv Fast特征提取函数
  16. vue使用百度地图(BMap)去掉百度地图的标志。
  17. SAP QA11 检验决策并过帐 BAPI
  18. MYSQL—— TIME_TO_SEC函数与UNIX_TIMESTAMP函数区别
  19. sns.boxplot()简单用法
  20. scanf_s()前身——scanf()

热门文章

  1. opencv 目标检测之行人检测
  2. 操作系统学习笔记7——进程管理中的数据结构:进程控制块
  3. mac远程桌面连接windows_mac连接windows远程桌面的方法
  4. CentOS 7 升级安装 Python 3.9 版本
  5. 归并排序求逆序对(C语言)
  6. 计算机公开课议课术语,最实用的评课用语
  7. Python基础——模块和包详解以及pip操作模块和包的指令
  8. 01_ue4进阶末日生存游戏开发[基础概念]
  9. 织梦自定义字段html,织梦模板调用自定义字段方法
  10. 冬奥会在即,比赛打分去除一个最低分,去除一个最高分,求平均分? --- 牛客网SQL54题给我的反思