Android 活动仍处于打开状态时多次调用
我的活动中有一个计数器,当api中的值更改时需要更新该计数器。 我想每5秒调用一次请求,以检查api值是否已更改,并在活动打开时更新计数器 我不知道有什么方法可以让我在一段时间内提出这些请求 我在科特林的方法Android 活动仍处于打开状态时多次调用,android,Android,我的活动中有一个计数器,当api中的值更改时需要更新该计数器。 我想每5秒调用一次请求,以检查api值是否已更改,并在活动打开时更新计数器 我不知道有什么方法可以让我在一段时间内提出这些请求 我在科特林的方法 private fun getTotalTrees() { disposable = viewModel.getTotalTrees().subscribeBy( onNext = { totalTrees =
private fun getTotalTrees() {
disposable = viewModel.getTotalTrees().subscribeBy(
onNext = {
totalTrees = it
},
onError = {
Timber.e(it)
},
onComplete = {
setAnimator()
}
)
}
private fun setAnimator() {
root.tv_contador
.setInterpolator(AccelerateInterpolator())
.countAnimation(lastTotalTrees, totalTrees)
}
我想要一种每隔5秒调用getTotalTrees()
方法的方法。
但它也需要一种在我的活动结束时终止此函数的方法。
也就是说,在onStop方法中
有人能帮我吗
[编辑]
我解决了
override fun getTotalTrees(): Flowable<Int> {
return Flowable.just(10320) // here goes the api call
.repeat() // here is the magic
.delay(3, TimeUnit.SECONDS) // delay in repeat
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
}
override fun getTotalTrees():可流动{
return Flowable.just(10320)//下面是api调用
.repeat()//这就是神奇之处
.delay(3,TimeUnit.SECONDS)//重复中的延迟
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
}
您可以尝试倒计时,当计时器完成后重新调用start
new CountDownTimer(5000, 5000) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
start();
}
}.start();
尝试使用计时器。你的意思是什么?尝试
可观察。间隔这无助于在活动打开时执行方法。在onStopAssign CountDownTimer实例到一个活动变量(“timer”,例如)之前,无法知道活动将处于活动状态多长时间,而在onStop事件上,只需调用timer.cancel()