我无法解决一项服务,而另一项服务正在解决?如果这就是错误的含义......等待解决的方法是什么?
@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/