Android RxJava创建操作符Timer的方法

作者:Adan0520 时间:2022-04-22 13:10:26 

本文实例为大家分享了Android RxJava创建操作符Timer的具体代码,供大家参考,具体内容如下

之前有写过Android实现倒计时之使用CountDownTimer,除了CountDownTimer,开发中我们也会用到handler,例如


mHandler.sendEmptyMessageDelayed(1, 10*1000);
 private Handler mHandler = new Handler() {
   @Override
   public void handleMessage(Message msg) {
     super.handleMessage(msg);
     Log.e("流程", "10秒时间已到");
   }
 };

现在结合RxJava来的Observable.timer操作符,既可以延迟执行一段逻辑,也可以间隔执行一段逻辑

首先添加类库


// RxAndroid
compile 'io.reactivex:rxandroid:1.2.1'
// RxJava
compile 'io.reactivex:rxjava:1.2.4'

(1)Timer 延迟10秒执行:


private void timer() {
   Observable.timer(10000, TimeUnit.MILLISECONDS)
       .observeOn(AndroidSchedulers.mainThread())
       .subscribe(new Action1<Long>() {
         @Override
         public void call(Long aLong) {
           Log.e("流程", "10秒倒计时已结束");
         }
       });
 }

(2)Timer 间隔1秒执行:


private Subscription subscribe;
 private void timer() {
   subscribe= Observable.timer(1000,1000,TimeUnit.MILLISECONDS).subscribe(new Subscriber<Long>() {
     @Override
     public void onCompleted() {
     }

@Override
     public void onError(Throwable e) {

}

@Override
     public void onNext(Long aLong) {
       Log.e(TAG, "------>along:"+aLong+" time:"+ SystemClock.elapsedRealtime());
     }
   });
 }

记得要取消订阅


private void stop() {
   if (subscribe != null && !subscribe.isUnsubscribed()) {
     subscribe.unsubscribe();
   }
 }

来源:http://blog.csdn.net/qq_20785431/article/details/72934048

标签:Android,RxJava,Timer
0
投稿

猜你喜欢

  • Java对xls文件进行读写操作示例代码

    2023-08-04 17:55:31
  • Spring Data JPA 设置字段默认值方式

    2021-08-13 07:27:06
  • C#实现银行家算法

    2023-05-01 08:04:35
  • mybatis中resultMap 标签的使用教程

    2022-01-15 11:19:42
  • 使用SpringMVC访问Controller接口返回400BadRequest

    2023-06-05 00:14:01
  • C# wpf使用ListBox实现尺子控件的示例代码

    2023-02-23 04:43:30
  • C#控制台带参数程序源码编写实例讲解

    2022-11-25 21:30:55
  • 通过FeignClient调用微服务提供的分页对象IPage报错的解决

    2022-01-27 20:19:23
  • Java实现动态获取图片验证码的示例代码

    2023-07-24 22:32:05
  • Springboot Mybatis Plus自动生成工具类详解代码

    2022-09-17 12:01:57
  • 解读JSONArray删除元素的两种方式

    2022-10-31 11:40:50
  • Spring Task定时任务每天零点执行一次的操作

    2021-09-12 10:59:44
  • Android开发中解析xml文件XmlUtils工具类与用法示例

    2023-03-26 01:05:45
  • Android编辑框EditText与焦点变更监视器及文本变化监视器实现流程详解

    2021-06-21 04:48:14
  • SpringBoot+Nacos+Kafka微服务流编排的简单实现

    2023-03-21 10:34:53
  • C#使用is、as关键字以及显式强转实现引用类型转换

    2023-01-29 16:15:27
  • Java及nginx实现文件权限控制代码实例

    2022-05-01 02:48:18
  • C# Cache缓存读取的设置方法

    2022-11-18 05:33:53
  • 使用JavaBean根据指定条件设置属性值默认值方式

    2023-03-23 04:03:25
  • C#套接字(Socket)通信之UDP组播详解

    2022-06-11 05:49:52
  • asp之家 软件编程 m.aspxhome.com