何时/何地调用 scheduleAtFixedRate()

问题描述

我想在应用程序运行时执行一个后台任务,这个任务应该(例如)每 5 分钟执行一次,为此我想我会使用 scheduleAtFixedrate() 类中的 ScheduledThreadPoolExecutor

但问题是代码中的哪里可以做到这一点??我的理解是,一旦我调用方法,它就会无限期地连续执行任务 (https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/util/concurrent/ScheduledThreadPoolExecutor.html#scheduleAtFixedRate(java.lang.Runnable,java.util.concurrent.TimeUnit)),这就是为什么只调用一次方法就足够了。

首先我想把它放在onCreate()类的Application方法中。但即使这个方法也被多次调用(Service/broadcastMenager 导致多次调用)。

然后我想只是创建一个 class 并在 class 内部创建 static variable

static ScheduledFuture a = someVariable.scheduleAtFixedrate​(()->{some work},50L,250L,TimeUnit.SECONDS);但这似乎不是正确的做法。

所以我的问题是如何正确地做到这一点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)