android - Android:活动关闭时服务失去传感器焦点
问题描述
我正在制作一个应用程序,其中后台服务在某些特定动作上做一些事情。目前,我使用带有 SensorEventListener 的简单服务来注册手机的移动并执行我希望它执行的操作。我还使用没有任何时间限制的(可选)唤醒锁(但在服务终止时它会被取消连接)以确保服务始终可访问。我使用 START_REDELIVER_INTENT 确保在用户停止活动时重新启动(通常通过 ome 按钮)。现在我的问题是:当我停止活动时,服务会终止,但有时只会重新启动(我不知道它是否没有重新启动或者只是没有调用它的传感器。我怀疑最后但我不确定,因为我只放置了一个Sensorchanged 方法中的简单 Sysout 进行测试)。
是否有更好、更有效的方法来实现我的目标(例如 startForeground),我如何确保在活动停止后持续获取传感器数据?
解决方案
需要连续运行的服务必须以startForeground()
.
这样做的一个积极的副作用是,用户会意识到您的应用程序正在使用传感器,并且可以在电池电量不足时停止它。
推荐阅读
- c# - 尝试创建一个 lambda 以将 linq 中的日期过滤到具有附加完整检查的实体
- html - 我可以将 html 网站功能作为后台程序吗?
- php - 在 PHP 应用程序中出现两个错误
- android - W AppOps:注意操作未完成:pkg com.google.android.gms
- r - 保留小数位并在输出表中垂直对齐小数
- javascript - 匹配下拉数量并计算总价
- testing - TestCafe:如何将页面上的按钮组件设置为单击但未释放的按下状态?
- java - 查找时间范围内任何时间平均活跃的工人数量
- android - 我的代码有一些问题。我想将传统的 if 转换为 elvis 运算符。那我该怎么办?
- python - Python函数返回字符串