首页 > 解决方案 > 每 1 分钟(60*1000 毫秒)调用一次 api,最长 10 小时

问题描述

我正在开发在后台运行的应用程序,需要每 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(所有操作系统版本)中实现。

标签: androidmultithreadingtimer

解决方案


您可以在 api 级别 26 之前使用服务来实现这一点,但在 api 级别 27 中,服务将自动被操作系统杀死。


推荐阅读