A different approach ... here is an example: If the user has a delay of 600-1000ms when is typing you may consider he's stopped.
myEditText.addTextChangedListener(new TextWatcher() {_x000D_
_x000D_
private String s;_x000D_
private long after;_x000D_
private Thread t;_x000D_
private Runnable runnable_EditTextWatcher = new Runnable() {_x000D_
@Override_x000D_
public void run() {_x000D_
while (true) {_x000D_
if ((System.currentTimeMillis() - after) > 600)_x000D_
{_x000D_
Log.d("Debug_EditTEXT_watcher", "(System.currentTimeMillis()-after)>600 -> " + (System.currentTimeMillis() - after) + " > " + s);_x000D_
// Do your stuff_x000D_
t = null;_x000D_
break;_x000D_
}_x000D_
}_x000D_
}_x000D_
};_x000D_
_x000D_
@Override_x000D_
public void onTextChanged(CharSequence ss, int start, int before, int count) {_x000D_
s = ss.toString();_x000D_
}_x000D_
_x000D_
@Override_x000D_
public void beforeTextChanged(CharSequence s, int start, int count, int after) {_x000D_
}_x000D_
_x000D_
@Override_x000D_
public void afterTextChanged(Editable ss) {_x000D_
after = System.currentTimeMillis();_x000D_
if (t == null)_x000D_
{_x000D_
t = new Thread(runnable_EditTextWatcher);_x000D_
t.start();_x000D_
}_x000D_
}_x000D_
});
_x000D_