android - 如何让 Android AlarmManager 执行 setWindow 但在空闲时允许?
问题描述
即使设备处于空闲状态并且处于打盹模式,我也需要一种在时间窗口内运行某些东西的方法。似乎 AlarmManger 的 setExactAndAllowWhileIdle 可以解决问题。但是,我想节省电池,我不需要它在确切的时间运行,一个窗口就可以了。从我所做的阅读来看,如果设备在窗口期间处于打盹模式,我认为 AlarmManager 的 setWindow 不会启动任何操作。虽然我不需要它在确切的时间运行,但我确实需要它在窗口期间运行,即使它处于空闲状态。
有没有一种通用的方法可以做到这一点?
我曾想过使用我的 windowStart 和 windowLength 做一个 setWindow,然后为 windowStart+windowLength 做一个 setExactAndAllowWhileIdle。如果调用了 setWindow(设备没有空闲),那么我会让它取消 setExactAndAllowWhileIdle。但是有没有更好的方法来实现这一点?
我也考虑过 WorkManager,但如果我可以接受的时间窗口是在设备空闲/打瞌睡期间,它不会运行,直到打瞌睡结束。
解决方案
推荐阅读
- javascript - 如何使用 socket.io 发出一个在连接的客户端之间更新的数组
- jax-rs - 如何在 JAX-RS 过滤器中记录请求处理时间
- scala - 在 Spark 应用程序中使用 Apache Directory API
- google-cloud-platform - 自动修复云 DNS google 和 Godaddy
- kubernetes - 在 Pod 启动之前挂载 EKS EFS CSI 超时
- c++ - 在 C++ 中是否有 C# 中的关键字“where”的类似物?
- c - 应用函数时 char* 更改
- javascript - 尝试使用 Google 登录时出现 auth.esm.js:255 的 React + Firebase 应用和网络错误
- javascript - 调整大小后丢失图像质量
- rasa-nlu - 在 RASA 中添加语音到文本功能