在Android我正在开发的应用程序中,我想使用连接做零配置网络NsdManager.
我设法运行网络服务发现并连接到所需的网络,但停止发现后NsdManager线程仍在运行.这导致在几次屏幕旋转之后有许多NsdManager线程正在浏览连接的情况.

当任何网络可用时,设备会尝试多次同步,因此NsdManager尽管停止服务发现,每个网络仍处于活动状态.
贝娄是我的代码:
package dtokarzewsk.nsdservicetest;
import android.content.Context;
import android.net.nsd.NsdManager;
import android.net.nsd.NsdServiceInfo;
import android.util.Log;
import java.net.InetAddress;
public class NsdTest {
private static final String NSD_SERVICE_NAME = "TestService";
private static final String NSD_SERVICE_TYPE = "_http._tcp.";
private int mPort;
private InetAddress mHost;
private Context mContext;
private NsdManager mNsdManager;
private android.net.nsd.NsdManager.DiscoveryListener mDiscoveryListener;
private android.net.nsd.NsdManager.ResolveListener mResolveListener;
public NsdTest(Context context) {
mContext = context;
}
public void startListening() {
initializeResolveListener();
initializeDiscoveryListener();
mNsdManager = (NsdManager) mContext.getSystemService(Context.NSD_SERVICE); …Run Code Online (Sandbox Code Playgroud)