protected void startChangeTracker() {

    ChangeTracker.ChangeTrackerMode changeTrackerMode;

    // it always starts out as OneShot, but if its a continuous replication
    // it will switch to longpoll later.
    changeTrackerMode = ChangeTracker.ChangeTrackerMode.OneShot;

    Log.d(
        Log.TAG_SYNC,
        "%s: starting ChangeTracker with since=%s mode=%s",
        this,
        lastSequence,
        changeTrackerMode);
    changeTracker = new ChangeTracker(remote, changeTrackerMode, true, lastSequence, this);
    changeTracker.setAuthenticator(getAuthenticator());
    Log.d(Log.TAG_SYNC, "%s: started ChangeTracker %s", this, changeTracker);

    if (filterName != null) {
      changeTracker.setFilterName(filterName);
      if (filterParams != null) {
        changeTracker.setFilterParams(filterParams);
      }
    }
    changeTracker.setDocIDs(documentIDs);
    changeTracker.setRequestHeaders(requestHeaders);
    changeTracker.setContinuous(lifecycle == Replication.Lifecycle.CONTINUOUS);

    changeTracker.setUsePOST(serverIsSyncGatewayVersion("0.93"));
    changeTracker.start();
  }