首页 > 解决方案 > 每小时安排一个任务从蓝牙设备获取数据并将其发送到服务器。

问题描述

我有一个要求,即使在打盹模式、活动模式或睡眠模式下,我也必须每小时向服务器发送一些数据。工作经理文件说它尊重打盹模式。我只是想知道有什么办法可以实现吗?

Minsdkversion 是 21。支持中国商店。也想支持 OS 8 和 9。

workmanager 中的 setRequiresDeviceIdle(true) 约束是什么?它仅在打盹模式下有效吗?

除了 WorkManager 我还有其他方法可以实现吗?

标签: android

解决方案


截至目前,我所知道的确保您的应用程序在正确的时间(100% 的时间)发送通知的唯一方法是使用AlarmManager - Alarm Clock

否则,AlarmManager setExactAndAllowWhileIdle(从 API 27 开始)将不会始终在打盹模式下工作。与 WorkManager 相同。基本上,您需要创建您的 Worker 并在其中设置一个 AlarmClock 以在一小时内再次启动 Worker。需要注意的是,这与闹钟、噪音、振动等的行为一样。


推荐阅读