RxJava练习(1)--timer代替Handler

最近项目需要引入RxJava,需要转换代码思路。
先在项目中看看哪里能使用这些api,发现有个handler可以被替换,迅速使用。
原来的代码是这样:

private Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        enterApp();
    }
}
mHandler.sendEmptyMessageDelayed(1, 10*1000);

以上代码的逻辑就是等待10秒,进入应用。很简单的逻辑。
但是这样的点有可能引起内存泄露。一般推荐的都是使用static的handler,并且结合软引用,控制handler的消息处理。
结合RxJava,发现有一个Observable.timer的api可以实现这个功能,而且不再需要使用handler。
实现方式如下:

Observable.timer(4, TimeUnit.SECONDS).subscribe(new Action1<Long>() {
            @Override
            public void call(Long aLong) {
                enterApp();
            }
        });

很简答的几行代码,就实现了handler的逻辑。
测试后,与原功能需要一致。
Observable.timer的解释是:

Timer — create an Observable that emits a single item after a given delay
Timer — 创建一个Observable,在给定延迟后释放唯一事件

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值