我无法解决一项服务,而另一项正在解决?如果那是错误的意思,那么等待解决问题的方法是什么?
@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
}
}
希望这可以帮助 :)