Android 学习笔记(5)之RxJava解析1
1,线程调度
Scheduler 有很多实现类 SingleScheduler .IoScheduler....
Schedulers.computation() 用于计算任务,
Schedulers.from(executor) 指定excecutor作为调度器
Schedulers.immediate( ) 当前线程执行
Schedulers.io() IO密集型任务
Schedulers.newThread() 为每个任务新建线程
Schedulers.trampoline( ) 当其它排队的任务完成后,在当前线程排队开始执行
AndroidSchedulers.mainThread() 用于Android的UI更新操作
2,subscribeOn/observeOn
subcribeOn多次调用为什么只有第一次生效
observeOn多次调用,每次都会起作用
3,防抖 采用rxbinding2
RxView.clicks(mBt)
.throttleFirst(10, TimeUnit.SECONDS)
查询过滤 debounce 防抖 .throttle节流
RxTextView.textChanges(edittext)
.debounce(1, TimeUnit.SECONDS)
//跳过第1次请求 因为初始输入框的空字符状态
.skip(1)
4, combineLatest 操作符
用来将多个Observable发射的数据组装起来然后在发射
比如用来登录校验
Observable.combineLatest(ObservableName, ObservablePassword
, (phone, password) -> isPhoneValid(phone.toString()) && isPasswordValid (password.toString()))
.subscribe(mBtLogin::setEnabled);
interval 操作符可以实现短信发送倒计时效果
Observable.interval(1,TimeUnit.SECONDS,AndroidSchedulers.mainThread())
.take(60)
flatMap 操作符可以实现数据嵌套转换效果。
.flatMap( o -> wanAndroidApi.getProject())
.flatMap(projectBean -> Observable.fromIterable(projectBean.getData()))
concatMap 和flatMap差不多,只是是按顺序发送。
5,自定义Eventbus
定义 post方法,使用 FlowableProcessor onNext发送数据
定义事件
然后注册。rxBus.toFlowable(CrossActivityEvent.class)
.subscribe(new Consumer<CrossActivityEvent>() {
@Override
public void accept(CrossActivityEvent crossActivityEvent) throws Exception {
Log.i(TAG, "我是来自TestCrossActivity的event");
}
});
Android 学习笔记(5)之RxJava解析1相关推荐
- Android学习笔记---15_采用Pull解析器解析和生成XML内容
15_采用Pull解析器解析和生成XML内容 -------------------------------------- 使用SAX或者DOM或者pull解析XML文件 -------------- ...
- Android 学习 笔记_07. XML文件解析
1.概念 XML:可扩展标记语言,类似html的那些标记.可扩展指的是:没有规定的.限制的.固定的标记.有SAX和DOM两种解析方式. DOM:将XML文档全部装载到内存里面,然后解析成一个棵树,再进 ...
- android jackson xml,[Android学习笔记]jackson库的使用
Jackson库一般用于序列化和反序列化操作,通常会涉及到的操作是: 1. Java Object -> Json String 2. Java Object -> Xml String ...
- Android学习笔记之AndroidManifest.xml文件解析(摘自皮狼的博客)
Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它 ...
- Android学习笔记:Android基础知识点(不断更新中)
1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...
- XML学习笔记02【xml_解析】
Java后端 学习路线 笔记汇总表[黑马程序员] XML学习笔记01[xml_基础.xml_约束][day01] XML学习笔记02[xml_解析][day01] 目录 03 xml_解析 xml_解 ...
- Android学习笔记21:ImageView获取网络图片
Android平台有3种网络接口可以使用,它们分别是:java.net.*(标准java接口).org.apache(Apache接口)和android.net.*(Android网络接口).本文将使 ...
- Android学习笔记(七):多个Activity和Intent
根据www.mars-droid.com:Andriod开发视频教学,先跳过书本<Beginning Android 2>的几个章,我是这两个资源一起看,需要进行一下同步.先初步了解一下应 ...
- Android学习笔记26:图片切换控件ImageSwitcher的使用
在Windows操作系统中,要查看多张图片,可以通过使用"Windows照片查看器"在"上一张"和"下一张"之间切换,进行多张图片的浏览. ...
- Android学习笔记36:使用SQLite方式存储数据
在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...
最新文章
- Boost::context模块callcc的circle测试程序
- [渗透攻防] 一.从数据库原理学习网络攻防及防止SQL注入
- android gpio驱动实例,安卓gpio操作示例
- 【CodeForces - 485C】Bits (二进制相关,数学,贪心)
- css 回到首页按钮,js+css实现回到顶部按钮(back to top)
- 图解exports 和 module.exports
- window2003 httpdns
- Hive启动的三种方式
- 【评分】软件工程实践2017第一次作业-准备
- python爬取b站视频封面
- 数据库分类和负载均衡方案
- 图片上的文字用CSS写出毛玻璃效果
- 安装Ubuntu16.04视频播放器smplayer
- DEDE,DEDE网站搬家,DEDECMS搬家教程,一看就会!
- 嵌入式系统实用电源管理技术应该如何选择?
- “serve with message ‘spawn vue-cli-service ENOENT”的解决办法
- Swiper Social项目(一): Swiper Social项⽬概览及项⽬⽬标(类似于探探)
- ESO+LTV MPC算法笔记
- 中关村软件园附近美食一览
- AEJoy—— JS 脚本的代码管理好习惯(三)
热门文章
- CVPR 2020 | 几篇GAN在low-level vision中的应用论文
- java计算机毕业设计雁门关风景区宣传网站源码+系统+mysql数据库+lw文档
- CA证书出错,请登录微信支付商户平台下载证书
- tensorflow-serving docker模型部署(以mnist为例)
- 为什么传输前要进行编码与调制
- WebUploader 上传 php 怎么回去返回的图片路径
- TypeScript——理解 infer 关键字!
- 领袖一般会采用什么方式?
- 2022(一等奖)B360基于Arcpy与SVM的滑坡易发性评价
- java 裁剪图片_java实现的图片裁剪功能示例