不会死的服务

时间:2014-01-16 14:49:13

标签: android service sensor

我终于让我的服务运行良好。他们使用经理生成事件和广播。我的接收活动甚至收到广播。我有一个最后的问题。我有两个服务。当我调用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();
    }

1 个答案:

答案 0 :(得分:2)

摆脱stopSelf()中的onDestroy(),因为它不是必需的,可能有害。

除此之外,您需要确保传入unregisterListener()的侦听器实例与您在registerListener()中使用的侦听器实例相同。