gpt4 book ai didi

android - 如何使用rxjava在android中延迟后调用方法?

转载 作者:IT老高 更新时间:2023-10-28 21:47:18 32 4
gpt4 key购买 nike

我正在尝试用 RxJava 替换我的 Handler 方法。
我的要求:

I want to call the method getTransactionDetails() only after 5 seconds.

这是我使用 Handler 的工作代码:

new Handler().postDelayed(new Runnable() {
@Override
public void run() {
getTransactionDetails();
}
}, 5000);

Rx java 代码 - 它不工作:

Observable.empty().delay(5000, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnNext(o -> getTransactionDetails())
.subscribe();

最佳答案

我会这样做:

    Completable.timer(5, TimeUnit.SECONDS, AndroidSchedulers.mainThread())
.subscribe(this::getTransactionDetails);

一个 Completable表示没有值但指示完成或异常的延迟计算。静态方法调用timer()返回一个 Completable 表示在指定时间段过去后完成,并且 subscribe() 调用将意味着方法 getTransactionDetails() 将计时器触发时在当前对象上调用。通过提供 Scheduler 作为 Completable.timer() 的最后一个参数,您可以控制使用哪个线程来执行 getTransactionDetails()

关于android - 如何使用rxjava在android中延迟后调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42122041/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com