关于RxJava的一些特殊用法小结

作者:DannyLau 时间:2022-06-13 13:31:54 

本文主要给大家介绍了关于RxJava的一些特殊用法,分享出来供大家参考学习,需要的朋友们下面来一起看看吧。

一、按钮绑定

通过 RxView 可以对 view 进行快速的 clicks 绑定


RxView.clicks(button).debounce(300, TimeUnit.MILLISECONDS).subscribe(new Action1<Void>() {
  @Override
  public void call(Void aVoid) {
   Log.i("test", "clicked");
  }
 });

二、轮询

项目中需要轮询请求,有两种实现方式

第一种


//轮训请求
Observable.create(new Observable.OnSubscribe<String>(){
@Override
public void call(Subscriber<? super String> subscriber) {

Schedulers.newThread().createWorker().schedulePeriodically(new Action0() {
  @Override
  public void call() {

//请求网络

}
 },10,10, TimeUnit.SECONDS);

}
}).subscribe(new Action1<String>() {
@Override
public void call(String s) {

}
});

第二种


//轮询
Subscription mRepeat = Observable.interval(2,2,TimeUnit.SECONDS)
 .subscribe(new Action1<Long>() {
@Override
public void call(Long aLong) {

}
});

三、延迟操作

有了这个就不用写,之前 thread 的延时方法了,而且可以快速的选择主线程和子线程


//延迟
Observable.timer(2,TimeUnit.SECONDS)
 .subscribe(call ->{

});

来源:http://danny-lau.com/2017/01/10/rxjava-utils/

标签:rxjava,用法
0
投稿

猜你喜欢

  • C# Memcached缓存用法实例详解

    2023-06-29 07:27:33
  • Java实现XML文件学生通讯录

    2023-07-23 19:21:49
  • MultipartResolver实现文件上传功能

    2021-06-19 22:38:15
  • java搭建ftp/sftp进行数据传递的全过程

    2023-11-29 15:08:10
  • C#纯技术之Class写入Json

    2023-01-15 17:13:49
  • mybatisplus使用xml的示例详解

    2021-08-21 18:19:27
  • Android多国语言转换Excel及Excel转换为string详解

    2022-10-30 08:07:02
  • 零基础写Java知乎爬虫之获取知乎编辑推荐内容

    2023-11-29 04:33:39
  • JAVA JDK8 List分组的实现和用法

    2023-11-26 09:56:11
  • 浅谈Java日志框架slf4j作用及其实现原理

    2022-11-02 19:02:04
  • c# 实现自动扫雷

    2021-09-01 09:25:58
  • android 通过MediaRecorder实现简单的录音示例

    2023-07-29 06:03:54
  • Android实现点击切换视图并跳转传值

    2022-07-14 07:23:28
  • java 中设计模式(值对象)的实例详解

    2021-12-27 14:15:08
  • java面向对象:API(接口)与集合(ArrayList)

    2021-06-07 03:28:19
  • Android编程使WebView支持HTML5 Video全屏播放的解决方法

    2022-04-11 08:25:15
  • Java编程中ArrayList源码分析

    2023-05-20 00:05:25
  • macOS上使用gperftools定位Java内存泄漏问题及解决方案

    2023-03-02 11:42:38
  • VS2019配置OpenCV时找不到Microsoft.Cpp.x64.user的解决方法

    2023-07-01 01:57:36
  • Flutter 实现网易云音乐字幕的代码

    2023-04-01 11:50:45
  • asp之家 软件编程 m.aspxhome.com