Como evitar vários gatilhos no EditText enquanto o usuário está digitando?

Eu uso o seguinte código para executar a pesquisa quando o usuário digita em um EditText:

<code>EditText queryView = (EditText) findViewById(R.id.querybox);
queryView.addTextChangedListener(new TextWatcher() {
  @Override
  public void afterTextChanged(Editable s) {
    triggerSearch(s.toString()); 
  }
  @Override
  public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  }
  @Override
  public void onTextChanged(CharSequence s, int start, int before, int count) {
  }
});
</code>

No entanto, isso dispara várias vezes quando o usuário está digitando uma palavra. Ou seja, se o usuário estiver digitando "olá", esse código irá disparar 5 vezes com valores ("h", "he", "hel", "hell", "hello"). Normalmente, isso seria ótimo, mas a pesquisa acionada é cara e não quero desperdiçar recursos em pesquisas intermediárias que não são de grande utilidade. O que eu quero é um ouvinte que acione apenas um certo limite depois que o usuário começar a digitar, ou algum tipo de estrutura, que espere no ouvinte antes de chamartriggerSearch, e se outro evento for acionado antes dessa espera, cancela a si mesmo.

questionAnswers(4)

yourAnswerToTheQuestion