作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的服务终于运行良好了。他们正在使用管理器生成事件和广播。我的接收 Activity 甚至可以很好地接收广播。我还有最后一个问题。我有两个服务。当我调用 onDestroy() 时,只有其中一个正在停止。另一个继续广播。它还会继续监听变化。 THat Service 是一个 LightSensor,用于监视 Lux 事件。在我打电话时的接收 Activity 中
stopService(new Intent(this, LightSensor.class));
onDestroy 实际上触发了。我知道这一点是因为我有一个 Log.d 事件来告诉我它被解雇了但它没有死。 SensorListener 应该注销并且服务应该停止,但即使在我退出应用程序后,它仍在接收来自 LightSensor 的信息。
有人可以看看为什么这个服务不会死吗?
光传感器
@Override
public void onDestroy() {
Log.d(TAG, "OnDestroy");
stopSelf();
mSensorManager.unregisterListener(this, LightSensor);
super.onDestroy();
}
最佳答案
去掉stopSelf()
在 onDestroy()
,因为它不是必需的,而且可能有害。
除此之外,您需要确保传递给 unregisterListener()
的监听器实例是您与 registerListener()
一起使用的同一个监听器实例.
关于android - 永不过时的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21165033/
我是一名优秀的程序员,十分优秀!