我无法解决一项服务,而另一项正在解决?如果那是错误的意思,那么等待解决问题的方法是什么?

@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);
        }
    }
}

最佳答案

您不必等待!
如果您查看javadocs
resolveService(NsdServiceInfo serviceInfo,NsdManager.ResolveListener侦听器)
here您会注意到,对于参数侦听器,它说“在成功或失败时接收回调。不能为null。不能用于 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
        }
    }

希望这可以帮助 :)

08-18 10:29