In Android iタイマーを使用して、5秒ごとに繰り返し、1秒後にこのタスクを開始するタスクを実行します。
_ Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
// Here is the repeated task
}
}, /*Start after*/1000, /*Repeats every*/5000);
// here i stop the timer
timer.cancel();
_
このタイマーは、timer.cancel()
を呼び出すまで繰り返されます
RxAndroid拡張機能でRxJavaを学習しています
だから私はインターネットでこのコードを見つけました、私はそれを試してみましたが、繰り返されません:
_Observable.timer(3000, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Long>() {
@Override
public void call(Long aLong) {
// here is the task that should repeat
}
});
_
rxJavaのAndroid Timerの代替手段は何ですか。
timer演算子は、指定された遅延後にアイテムを発行し、完了します。 interval演算子を探していると思います。
Subscription subscription = Observable.interval(1000, 5000, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Long>() {
public void call(Long aLong) {
// here is the task that should repeat
}
});
停止する場合は、サブスクリプションでunsubscribeを呼び出すだけです。
subscription.unsubscribe()
Observable.repeat()
メソッドを呼び出して繰り返します
_Disposable disposable = Observable.timer(3000, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.newThread())
.repeat()
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
_
停止する場合は、disposable.dispose()
を呼び出します