Como fazer o TextWatcher esperar por algum tempo antes de fazer alguma ação

eu tenho umEditText para filtrar os itens noListView abaixo dela, que pode conter mais de 1000 itens normalmente. oTextWatcher é:

txt_itemSearch.addTextChangedListener(new TextWatcher() {

public void onTextChanged(CharSequence s, int start, int before, int count) {
    fillItemList();
}
public void afterTextChanged(Editable s) {
}

public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
}
});

O problema aqui é que, com cada letra digitada pelo usuário, a lista está sendo atualizada e é essa atualização de lista repetida que faz com que a interface do usuário seja lenta.

Como posso fazer oTextWatcher aguarde 1-2 segundos e, se não houver mais entrada após 2 segundos, filtre a lista. Alguma sugestão pessoal?

questionAnswers(2)

yourAnswerToTheQuestion