我无法解决一项服务,而另一项正在解决?如果那是错误的意思,那么等待解决问题的方法是什么?
@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:侦听器已在android.net.nsd.NsdManager.resolveService(NsdManager.java:613)处使用,位于com.example.miguel.broadcast.LocalService $ 2.onServiceFound(LocalService.java:145)
您不必等待!如果您在Javadocs中查看resolveService(NsdServiceInfo serviceInfo,NsdManager.ResolveListener监听器) ,则会注意到对于参数监听器,它说的是“成功或失败时接收回调。不能为null。不能用于活动服务解析度。”
因此,为了使它起作用,只需执行以下操作:
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 } }
希望这可以帮助 :)