diff --git a/framework-t/src/android/net/nsd/NsdManager.java b/framework-t/src/android/net/nsd/NsdManager.java index ef0e34bfe7..dae891402a 100644 --- a/framework-t/src/android/net/nsd/NsdManager.java +++ b/framework-t/src/android/net/nsd/NsdManager.java @@ -34,10 +34,10 @@ import android.app.compat.CompatChanges; import android.content.Context; import android.net.ConnectivityManager; import android.net.ConnectivityManager.NetworkCallback; +import android.net.ConnectivityThread; import android.net.Network; import android.net.NetworkRequest; import android.os.Handler; -import android.os.HandlerThread; import android.os.Looper; import android.os.Message; import android.os.RemoteException; @@ -632,10 +632,9 @@ public final class NsdManager { */ public NsdManager(Context context, INsdManager service) { mContext = context; - - HandlerThread t = new HandlerThread("NsdManager"); - t.start(); - mHandler = new ServiceHandler(t.getLooper()); + // Use a common singleton thread ConnectivityThread to be shared among all nsd tasks. + // Instead of launching separate threads to handle tasks from the various instances. + mHandler = new ServiceHandler(ConnectivityThread.getInstanceLooper()); try { mService = service.connect(new NsdCallbackImpl(mHandler), CompatChanges.isChangeEnabled( diff --git a/tests/unit/java/android/net/nsd/NsdManagerTest.java b/tests/unit/java/android/net/nsd/NsdManagerTest.java index 0965193c31..550a9ee26b 100644 --- a/tests/unit/java/android/net/nsd/NsdManagerTest.java +++ b/tests/unit/java/android/net/nsd/NsdManagerTest.java @@ -51,6 +51,7 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +@DevSdkIgnoreRunner.MonitorThreadLeak @RunWith(DevSdkIgnoreRunner.class) @SmallTest @DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.S_V2) diff --git a/tests/unit/java/com/android/server/NsdServiceTest.java b/tests/unit/java/com/android/server/NsdServiceTest.java index 771edb27a0..ffc8aa1d46 100644 --- a/tests/unit/java/com/android/server/NsdServiceTest.java +++ b/tests/unit/java/com/android/server/NsdServiceTest.java @@ -145,6 +145,7 @@ import java.util.Queue; // TODOs: // - test client can send requests and receive replies // - test NSD_ON ENABLE/DISABLED listening +@DevSdkIgnoreRunner.MonitorThreadLeak @RunWith(DevSdkIgnoreRunner.class) @SmallTest @DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.S_V2)