Cómo hacer que TextWatcher espere un tiempo antes de realizar alguna acción

Yo tengo unEditText para filtrar los elementos en elListView debajo de él, que puede contener más de 1000 elementos por lo general. losTextWatcher es:

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) {
}
});

El problema aquí es que con cada letra escrita por el usuario, la lista se actualiza y esta actualización repetida de la lista hace que la IU sea lenta.

¿Cómo puedo hacer elTextWatcher espere de 1 a 2 segundos y, si no ocurre más entrada después de 2 segundos, filtre la lista. ¿Alguna sugerencia chicos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta