当前位置:  开发笔记 > 运维 > 正文

Android:在父进程退出后,停止运行Bonjour服务

如何解决《Android:在父进程退出后,停止运行Bonjour服务》经验,为你挑选了0个好方法。

我的应用程序本质上是一个后台服务,需要偶尔注册一个NSD服务(Bonjour服务),以便能够发现由主后台服务运行的套接字服务器(也就是由app运行).

如果我正确阅读Android Bonjour服务文档,这就是您启动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在主服务崩溃后,我如何确保不会留下一堆乱七八糟的僵尸服务?

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有