Dou*_*oug 14 android android-service android-wake-lock
我对Android比较陌生,所以我要问的可能看起来很明显(虽然我已经阅读了所有类似标题的问题,并且进行了广泛的搜索).我需要长时间连续监控加速度计.提出了两种方法:
1)获取部分唤醒锁定,该锁定在整个加速器被监视的时间内保持; 和
2)在前台服务中监控加速度计.
第一种方法似乎使用了大量的电池寿命.第二种方法应该导致服务很少被杀死,但我不确定"很少"意味着什么.应该使用哪种方法,还有哪些方法我应该考虑?
持有WakeLock和前景Service并不是真正相关的,不应该比较哪个方向最好.
Android操作系统旨在根据各种因素交换流程.这意味着您的流程可能会在任何时候被Android杀死,它提供了一个框架来帮助您(开发人员)确保您的应用可以在发生这种情况时保存并恢复其状态.
A WakeLock简单地防止CPU休眠,这有助于在手机不使用时节省电量.
现在,两者的结合将帮助您实现您想要的但是用户成本很高.我不希望手机中的应用程序保持CPU持续运行或通知栏中不断显示通知图标(这是前台服务的作用).
请记住,在前台模式下启动服务并不能保证您的应用不会被杀死.它可能仍然会发生,虽然很少.
你想在这里实现什么?为什么要继续监控设备加速度计?也许你应该只Activity在你的应用程序位于前台时监控它.
我有完全相同的需求和问题。我相信解决方案是同时使用部分唤醒锁和前台服务。Android 将尝试不终止持有唤醒锁的后台服务,但可以在需要资源时随意终止它,并可能稍后重新启动它。这对于很多目的来说都很好,但至少就我而言还不够好。将服务置于前台状态是告诉 Android 杀死它是不可接受的方式。是的,在极端情况下它仍然可能发生,但这现在违反了 API 合同,而使用后台服务 Android 可以随意终止它。因此,您应该编码就好像这种情况永远不会发生一样,但只知道这是一个可能但可能罕见的错误。
| 归档时间: |
|
| 查看次数: |
4031 次 |
| 最近记录: |