库
Rx相关依赖
1 | implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' |
Rx相关的库
- https://github.com/ReactiveX/RxJava ——RxJava核心库
- https://github.com/ReactiveX/RxAndroid ——RxJava在Android中使用的扩展库
- https://github.com/JakeWharton/RxBinding ——Android控件对RxJava的支持库
- https://github.com/trello/RxLifecycle ——帮助RxJava在Android中生命周期的控制,避免内存溢出等问题
- https://github.com/pushtorefresh/storio ——数据库对RxJava的支持
- https://github.com/f2prateek/rx-preferences ——使SharedPreferences支持 RxJava
防止View点击多次
throttleFirst
操作符:仅发送指定时间段内的第一个信号
throttleLast
操作符:仅发送指定时间段内的第一个信号
Java
1 | //对于button的防抖处理 1秒内只截取第一次的点击事件,还有一个截取最后一次的方法 |
Kotlin
(顺序和上面的Java一样)
1 | RxView.clicks(register_button) |
倒计时(用RxBinding)
Java
1 | //按钮实现倒计时,屏蔽点击事件+定时 |
Kotlin
1 | RxView.clicks(register_button) |
倒计时(未用RxBinding)
Java
1 | import java.util.concurrent.TimeUnit; |
调用方式(Kotlin
)
1 | //倒计时 |
防止重复调用
Java
1 | RxTextView.textChanges(username_edittext) |
延迟执行
Java
1 | Observable.timer(3, TimeUnit.SECONDS) |
Kotlin
1 | Observable.timer(100,TimeUnit.MILLISECONDS) |
循环执行
Java
1 | //延时3s,每间隔3s,时间单位s |
Kotlin
1 | Observable.interval(1,1,TimeUnit.SECONDS) |
分线程操作
Java
1 | Observable |