我有一个跟踪用户位置的服务。 它不具有全天候运行,但它应该在旅行期间运行。 以下是我已经实现到现在的事情,以确保它的持续运作:
- 开始服务为前景
- 使用“START_STICKY”
- 如果启动服务正在运行,检查每10分钟发出警报。 如果没有启动服务。
尽管所有这些措施,对于某些设备(如MI 3W)服务得到10分钟内死亡,都不会重新启动(甚至没有等待12小时后!)。 从广泛的谷歌搜索我已经了解到,当过程由OS杀死报警不会触发(纠正我,如果我错了),所以这可能是这里的情况。 但是,发生了什么事“START_STICKY”?
所以,我的疑问是:
- 发生了什么事START_STICKY? 它是一个OS错误(OS V6)?
- 为什么OS取消所有设定的报警,同时终止进程?
- 更重要的是如何确保我的服务的行程时间运行?