java - 监听器已在使用中(服务发现)

标签 java android service-discovery

我无法解决一项服务,而另一项服务正在解决?如果这就是错误的含义......等待解决的方法是什么?

@Override
public void onServiceFound(NsdServiceInfo service) {
    Log.d(TAG, "Service found. " + service);
    if (service.getServiceType().equals(SERVICE_TYPE)) {
        if (service.getServiceName().contains(mServiceName)) {
            mNsdManager.resolveService(service, mResolveListener);
        }
    }
}

java.lang.IllegalArgumentException: listener already in use at android.net.nsd.NsdManager.resolveService(NsdManager.java:613) at com.example.miguel.broadcast.LocalService$2.onServiceFound(LocalService.java:145)

最佳答案

您不必等待! 如果您查看 javadocs resolveService(NsdServiceInfo serviceInfo, NsdManager.ResolveListener 监听器) here您会注意到,对于参数监听器,它说“在成功或失败时接收回调。不能为空。不能用于 Activity 服务解析。”

因此,为了使其正常工作,只需执行以下操作:

mNsdManager.resolveService(service, new MyResolveListener());

MyResolveListener 在哪里:

private class MyResolveListener implements NsdManager.ResolveListener {
        @Override
        public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) {
            //your code
        }

        @Override
        public void onServiceResolved(NsdServiceInfo serviceInfo) {
            //your code
        }
    }

希望这会有所帮助:)

关于java - 监听器已在使用中(服务发现),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25815162/

相关文章:

java - 揭秘安卓构建过程

amazon-web-services - 使用 ECS Fargate 进行服务发现

java - 如何将 Java Pojo 转换为 Nashorn Json?

java - 如何在 Gson 中读取 Json.NET ISO 8601 格式?

java - 如何在 ArrayList 中的特定位置插入对象

javascript - 如何使用phonegap监听屏幕触摸开始和触摸结束

android - 在另一个 Android 应用程序中从 APK 调用 Activity

dns - HAProxy SRV 使用 Consul DNS 准备好的查询记录负载平衡

java - Wildfly-Swarm Consul 服务发现 - 无效的服务地址

java hibernate - 如何将日期列映射为日期时间?