我终于让我的服务运行良好。他们使用经理生成事件和广播。我的接收活动甚至收到广播。我有一个最后的问题。我有两个服务。当我调用onDestroy()时,只有其中一个停止。另一个继续播出。它还继续倾听变化。 THAT Service是一个LightSensor,用于监控Lux事件。在我的接收活动中,当我打电话
stopService(new Intent(this, LightSensor.class));
onDestroy实际上是开火了。我知道这是因为我有一个Log.d事件向我展示它被解雇但是它没有死。 SensorListener可以取消注册,服务可以停止,但即使在我退出应用程序后,它也会从LightSensor接收。
有人可以看一看为什么这项服务不会死于plesae?
LightSensor
@Override
public void onDestroy() {
Log.d(TAG, "OnDestroy");
stopSelf();
mSensorManager.unregisterListener(this, LightSensor);
super.onDestroy();
}
答案 0 :(得分:2)
摆脱stopSelf()
中的onDestroy()
,因为它不是必需的,可能有害。
除此之外,您需要确保传入unregisterListener()
的侦听器实例与您在registerListener()
中使用的侦听器实例相同。