【发布时间】:2018-07-27 13:24:52
【问题描述】:
我正在开发在后台运行的应用程序,并且需要每 1 分钟(60*1000 毫秒)调用一次 api 而没有任何波动。我已经尝试过调度程序、计时器和其他东西,但它不能正常工作。例如,我的场景是在上午 09:11:36(第一次 api 调用)、09:12:36(第二次 api 调用)等时间调用 api,最后最后的 api 调用将在 11 点:晚上 20 点 36 分。我使用了以下代码:
Handler minuteHandler = new Handler();
minuteHandler.postDelayed(runnable, 60000);
final Runnable runnable = new Runnable() {
@Override
public void run() {
// your runnable code
minuteHandler.removeCallbacks(runnable);
minuteHandler.postDelayed(runnable, 60000);
}
};
和
new Timer("threadname", true).scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
// your runnable code
}
}, 0,60*1000);
等等, 我的问题是可以在android(所有操作系统版本)中实现。
【问题讨论】:
-
您发布的代码在哪里?活动?服务?一些 JobScheduler?
-
嗨@Pawel,我已经在活动和服务中尝试过代码。
-
你为什么需要这样的东西?您可能无法在任何手机上实现这一点,因为电池很快就会没电。
-
嗨@egoldx!抱歉,在这种情况下,事情不能暴露,电池耗尽问题对我来说不是问题。
-
你需要使用前台服务比。
标签: android multithreading timer