/// <summary>
		/// Removes the listener from the collection of listeners who will be notified when a new
		/// <seealso cref="AndroidDebugBridge"/> is started. </summary>
		/// <param name="listener"> The listener which should no longer be notified. </param>
		public static void removeDebugBridgeChangeListener(IDebugBridgeChangeListener listener)
		{
			lock (sLock)
			{
				sBridgeListeners.Remove(listener);
			}
		}
		/// <summary>
		/// Adds the listener to the collection of listeners who will be notified when a new
		/// <seealso cref="AndroidDebugBridge"/> is connected, by sending it one of the messages defined
		/// in the <seealso cref="IDebugBridgeChangeListener"/> interface. </summary>
		/// <param name="listener"> The listener which should be notified. </param>
		public static void addDebugBridgeChangeListener(IDebugBridgeChangeListener listener)
		{
			lock (sLock)
			{
				if (sBridgeListeners.Contains(listener) == false)
				{
					sBridgeListeners.Add(listener);
					if (sThis != null)
					{
						// we attempt to catch any exception so that a bad listener doesn't kill our
						// thread
						try
						{
							listener.bridgeChanged(sThis);
						}
						catch (Exception e)
						{
							Log.e(DDMS, e);
						}
					}
				}
			}
		}