Android: остановка службы Bonjour после запуска родительского процесса

Мое приложение - это, по сути, фоновый сервис, который должен периодически регистрироватьNSD оказание услуг (Bonjour service), чтобы разрешить обнаружение сервера сокетов, запускаемого основным фоновым сервисом (или приложением).

Если я читаюAndroid Bonjour Service doc правильно, это то, как вы начинаетеBonjour услуга (сокращенно для краткости):

mNsdManager = Context.getSystemService(Context.NSD_SERVICE);
mDiscoveryListener = new NsdManager.DiscoveryListener()
mNsdManager.discoverServices(
        SERVICE_TYPE, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener);

... и вот как ты это прекратишь:

mNsdManager.unregisterService(mRegistrationListener);

Вот часть, которую я не могу обернуть головой: если основной сервис резко падает, любойBonjour служба, которая была зарегистрирована во время сбоя, продолжает работать, даже если у нее больше нет цели (сервер сокетов, который он помогает обнаружить, больше не существует).

Я не могу очистить зомбиBonjour услуги, когда основной сервис перезапускается, потому чтоmRegistrationListener служба была первоначально зарегистрирована, также больше не существует.

Я подозреваю, что выбрал неправильный подход: как мне убедиться, что я не оставляю беспорядок зомбиBonjour службы позади после того, как основной сервис потерпел крах?

Ответы на вопрос(2)

Ваш ответ на вопрос