gpt4 book ai didi

Android 重复任务不起作用

转载 作者:行者123 更新时间:2023-11-29 13:59:44 24 4
gpt4 key购买 nike

你能帮帮我吗?我实现了一个执行器和 scheduledWithFixedDelay,但它只执行一次....我想以重复的方式完成这项任务......

ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.scheduleWithFixedDelay(new Runnable(){

public void run() {
updateList();
}

}, updateTime, updateTime, TimeUnit.MINUTES);

我做错了什么?

提前致谢。

最佳答案

看来您的做法是正确的。这让我阅读了 Java 文档,以下是我发现的让我自己感到惊讶的内容。

If any execution of the task encounters an exception, subsequent executions are suppressed.

ScheduledExecutorService.scheduleWithFixedDelay()

runnable 中的代码是否有可能产生异常,从而导致 Scheduled Executor 终止执行?您肯定会提到这一点吗?

但正如我所说,我发现这读起来令人惊讶,因为我认为 Scheduled Executor 会处理异常,从而不会抑制后续任务的执行。这是首选而不是经典的主要原因之一 Timer .但是现在我在 javadoc 中看到我显然认为是错误的...

我对 Android 平台不是很熟悉,但也许 Oracle 的 JVM 和 Android 的 Dalvik 之间的 java.util.concurrent 设施存在差异,所以考虑 Oracle 的 JVM javadoc 可能毕竟不是一个好主意。

编辑:事实上,工厂方法的 javadoc 是这么说的

(Note however that if this single thread terminates due to a failure during execution prior to shutdown, a new one will take its place if needed to execute subsequent tasks.)

Executors.newSingleThreadScheduledExecutor()

编辑2:Oracle 和 Dalvik 的 java 文档似乎几乎没有区别。

关于Android 重复任务不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10059335/

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