我在应用程序中运行一项服务,用于检测设备上的接近传感器是否被触发。
但是,当我在运行 Android Lollipop 的设备上进行测试时,当我运行其他应用程序时,该服务似乎意外退出。
例如,我启动我的服务:
Intent service = new Intent(MainActivity.this,ProximityService.class);
startService(service);
然后我关闭应用程序并允许其运行。 接下来我打开 Google Chrome。我通过覆盖接近传感器来触发传感器。然后该服务突然消失,没有日志或错误消息。
当我尝试打开其他应用程序(例如相机应用程序和游戏)时,也会发生这种情况。
这种错误行为有可能的解释吗?
什么可能导致这些异常?
最佳答案
这在预期行为范围内,并且一直如此,即使实际发生的情况并不总是频繁。
唯一的“错误”是您期望 Android 将保持后台服务运行 - 没有做出这样的 promise 。
通常会在系统可以支持时重新启动被归类为尚未完成工作的服务。但重新启动 Service 来完成中断的工作与始终让它继续运行是截然不同的事情。
关于java - Android Lollipop 中的服务似乎随机消失,没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28641382/