android - 每小时安排一个任务从蓝牙设备获取数据并将其发送到服务器。
问题描述
我有一个要求,即使在打盹模式、活动模式或睡眠模式下,我也必须每小时向服务器发送一些数据。工作经理文件说它尊重打盹模式。我只是想知道有什么办法可以实现吗?
Minsdkversion 是 21。支持中国商店。也想支持 OS 8 和 9。
workmanager 中的 setRequiresDeviceIdle(true) 约束是什么?它仅在打盹模式下有效吗?
除了 WorkManager 我还有其他方法可以实现吗?
解决方案
截至目前,我所知道的确保您的应用程序在正确的时间(100% 的时间)发送通知的唯一方法是使用AlarmManager - Alarm Clock
否则,AlarmManager setExactAndAllowWhileIdle(从 API 27 开始)将不会始终在打盹模式下工作。与 WorkManager 相同。基本上,您需要创建您的 Worker 并在其中设置一个 AlarmClock 以在一小时内再次启动 Worker。需要注意的是,这与闹钟、噪音、振动等的行为一样。
推荐阅读
- sql - 来自oracle sql的等效redshift sql
- python - 如何修复“发生异常:AttributeError”
- javascript - 外部 JS 文件未加载
- android - Android 使用带有 ArrayAdapter 的自定义对象,并传递返回视图
- r - 在R中重构字符串
- arrays - 无法使用 uint8 类型初始化数组
- apache-kafka - cli 模式下的 Quarkus Kafka
- python - 如何在 Python 中按字母顺序对文件进行排序
- javascript - 如何在 nodeValue 中插入 span 元素
- c++ - 无法在 C++ 中初始化静态成员