Wie vermeide ich mehrere Trigger auf EditText, während der Benutzer tippt?

Ich verwende den folgenden Code, um eine Suche durchzuführen, wenn der Benutzer einen EditText eingibt:

<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>

Dies wird jedoch mehrmals ausgelöst, wenn der Benutzer ein Wort eingibt. Wenn der Benutzer "hallo" eingibt, wird dieser Code fünfmal mit Werten ausgelöst ("h", "er", "hel", "hölle", "hallo"). Normalerweise wäre das in Ordnung, aber die ausgelöste Suche ist teuer und ich möchte keine Ressourcen für Zwischensuchen verschwenden, die keinen großen Nutzen haben. Was ich möchte, ist entweder ein Listener, der nur einen bestimmten Schwellenwert auslöst, nachdem der Benutzer mit der Eingabe begonnen hat, oder eine Art Framework, das vor dem Aufruf im Listener wartettriggerSearch, und wenn ein anderes Ereignis vor dieser Wartezeit ausgelöst wird, bricht es sich selbst ab.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage