Наконец-то у меня все работает хорошо. Они генерируют события и трансляцию с использованием менеджеров. Моя получающая деятельность даже хорошо принимает трансляции. Однако у меня есть одна проблема. У меня есть две службы. Когда я вызываю onDestroy(), только один из них останавливается. Другой продолжает транслировать. Он также продолжает прослушивать изменения. Это сервис 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();
}
Вы проверили, вызван ли super.onDestroy()? есть вероятность, что unregisterListener не работает – Androidme
Строка 3 показывает в LogCat, поэтому я предполагаю, что вызывается onDestroy. Было бы разумно, что unreg терпит неудачу и объяснит проблему. Интересно, положил ли я еще один log.d после него, если это даст мне некоторые подсказки ..... –
ОК, это может быть немой, но я добавил Log.d после каждой строки, чтобы посмотреть, увольняются ли они. Я вижу запись журнала полностью после super.onDestroy. Если бы Unreg терпел неудачу, не остановился бы он или что-то еще? –