RxJava/RxAndroid:timer(long delay, TimeUnit unit)
2018-02-08 14:21
405 查看
RxJava/RxAndroid:timer(long delay, TimeUnit unit)
timer起到定时器的作用,本例使用timer延迟3秒执行一个输出任务:
package com.example.fly.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.observers.DisposableObserver;
import io.reactivex.schedulers.Schedulers;
public class MainActivity extends AppCompatActivity {
private final String TAG = "输出";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "" + System.currentTimeMillis());
Observable.timer(3, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(mDisposableObserver);
}
private DisposableObserver<Long> mDisposableObserver = new DisposableObserver<Long>() {
@Override
public void onNext(Long aLong) {
Log.d(TAG, "onNext:" + aLong);
Log.d(TAG, "" + System.currentTimeMillis());
}
@Override
public void onComplete() {
Log.d(TAG, "onComplete");
}
@Override
public void onError(Throwable e) {
Log.e(TAG, e.toString(), e);
}
};
}
输出:02-08 14:13:14.582 18410-18410/com.example.fly.myapplication D/输出: 1518070394582
02-08 14:13:17.661 18410-18410/com.example.fly.myapplication D/输出: onNext:0
02-08 14:13:17.661 18410-18410/com.example.fly.myapplication D/输出: 1518070397661
02-08 14:13:17.661 18410-18410/com.example.fly.myapplication D/输出: onComplete
注意到第一次打印系统时间是:02-08 14:13:14第二次打印出来的时间是:02-08 14:13:17。即延迟3秒。
timer不是周期性的执行任务,只是定时在某一个时间点发射一个事件,这和操作符interval周期性执行任务不同。
timer起到定时器的作用,本例使用timer延迟3秒执行一个输出任务:
package com.example.fly.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.observers.DisposableObserver;
import io.reactivex.schedulers.Schedulers;
public class MainActivity extends AppCompatActivity {
private final String TAG = "输出";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "" + System.currentTimeMillis());
Observable.timer(3, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(mDisposableObserver);
}
private DisposableObserver<Long> mDisposableObserver = new DisposableObserver<Long>() {
@Override
public void onNext(Long aLong) {
Log.d(TAG, "onNext:" + aLong);
Log.d(TAG, "" + System.currentTimeMillis());
}
@Override
public void onComplete() {
Log.d(TAG, "onComplete");
}
@Override
public void onError(Throwable e) {
Log.e(TAG, e.toString(), e);
}
};
}
输出:02-08 14:13:14.582 18410-18410/com.example.fly.myapplication D/输出: 1518070394582
02-08 14:13:17.661 18410-18410/com.example.fly.myapplication D/输出: onNext:0
02-08 14:13:17.661 18410-18410/com.example.fly.myapplication D/输出: 1518070397661
02-08 14:13:17.661 18410-18410/com.example.fly.myapplication D/输出: onComplete
注意到第一次打印系统时间是:02-08 14:13:14第二次打印出来的时间是:02-08 14:13:17。即延迟3秒。
timer不是周期性的执行任务,只是定时在某一个时间点发射一个事件,这和操作符interval周期性执行任务不同。
相关文章推荐
- RxJava/RxAndroid : buffer(long timespan, TimeUnit unit)
- RxJava/RxAndroid:ConnectableObservable & replay(long time, TimeUnit unit)
- RxJava/RxAndroid:ConnectableObservable & replay(int bufferSize, long time, TimeUnit unit)
- RxJava/RxAndroid:retry(long times, Predicate<? super Throwable> predicate)
- RxJava/RxAndroid:ConnectableObservable & delaySubscription
- RxJava 和 RxAndroid 三(生命周期控制和内存优化)
- RxAndroid和RxJava的简单使用
- 想用rxjava+rxandroid 替换handle实现数字时钟,出现无响应,不能隔一秒调用onNext
- RxJava和RxAndroid
- RxJava和RxAndroid专题学习
- Android——深入浅出RxJava 和RxAndroid(操作符)
- RxJava 和 RxAndroid 一 (基础)
- RxJava漫谈-RxAndroid使用
- [Android]基于RxJava、RxAndroid的EventBus实现
- 基于RxJava、RxAndroid的EventBus实现
- RxJava 和 RxAndroid 一 (基础)
- RxJava简介及在androidstudio中引入RxAndroid
- 浅析RxJava和RxAndroid关于线程切换和操作符作用
- RxJava 和 RxAndroid 生命周期控制和内存优化
- rxjava+rxandroid+retrofit2.0使用方法demo讲解