问题描述
我想在应用程序运行时执行一个后台任务,这个任务应该(例如)每 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 (将#修改为@)