/**
   * Starts a background thread to process contact-lookup requests, unless one has already been
   * started.
   */
  private synchronized void startRequestProcessing() {
    // For unit-testing.
    if (mRequestProcessingDisabled) return;

    // Idempotence... if a thread is already started, don't start another.
    if (mCallerIdThread != null) return;

    mCallerIdThread = new QueryThread();
    mCallerIdThread.setPriority(Thread.MIN_PRIORITY);
    mCallerIdThread.start();
  }