android - 每 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(所有操作系统版本)中实现。
解决方案
您可以在 api 级别 26 之前使用服务来实现这一点,但在 api 级别 27 中,服务将自动被操作系统杀死。
推荐阅读
- linux - 在 AWS Linux 机器上升级 MariaDB
- java - Spring boot + Thymeleaf - 具有回退到默认值的多个模板解析器
- javascript - 如何在 javascript 中创建深度嵌套的对象?
- php - 项目获批后,使用 Youtube API 上传的视频仍标记为私有
- spring - 从 SpringBoot 中的 API 获取特定的响应值
- java - 如何获取月份的最小和最大日期?
- python - UnicodeEncodeError:“latin-1”编解码器无法对位置 11-12 中的字符进行编码:序数不在范围内(256)
- python - Firestore get() 在 Flask 中不获取数据
- java - 如何获取泛型类型参数上使用的注释?
- amazon-web-services - 存储类的自定义配置器