首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jmDNS注销zeroconf服务

使用jmDNS注销zeroconf服务
EN

Stack Overflow用户
提问于 2011-05-07 03:07:40
回答 1查看 1.4K关注 0票数 2

我正在尝试让我的Android应用程序在应用程序处于活动状态时通过zeroconf注册服务,然后在应用程序退出后注销它。在我的onResume方法中,我有以下代码:

代码语言:javascript
复制
    // register ourselves with zero conf
    try {
        JmDNS jmdns = JmDNS.create();

        serviceInfo = ServiceInfo.create("_http._tcp.local.", "My App Service", SERVER_PORT, 0, 0, false, "path=/crazycatapp");
        jmdns.registerService(serviceInfo);
    } catch (Throwable t) {
        Debug.e("Error registering service with zeroconf", t);
    }

然后在我的onPause方法中:

代码语言:javascript
复制
    if(serviceInfo != null) {

            // unregister ourselves with zero conf
            JmDNS jmdns = JmDNS.create();
            jmdns.unregisterService(serviceInfo);
        }
    } catch (Throwable t) {
        Debug.e("Error unregistering service with zeroconf", t);
    }

我已经删除了执行多播启用的代码,等等。重点是,我可以很好地注册服务,然后可以在另一台设备上使用zeroconf浏览器查看它。然而,一旦注册,该服务永远不会消失,除非我真正禁用了注册该服务的设备上的wifi。对unregisterService的调用似乎并不实际影响服务注册。unregisterAllServices似乎也没有任何效果。有谁有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-31 20:47:51

通过查看JmDNS中的相关代码,我认为您应该从注册ServiceInfo的同一个JmDNS实例中注销它。因此,您必须保留注册代码片段中的jmdns引用,并对其调用unregister,而不是在取消注册代码片段中创建的新实例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5915919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档