У меня проблема с моим приложением Сбой при рассылке поля EditText Как добавить задержку кода перед выполнением «DoSearch»?EditText Задержка прослушивателя перед повторным выполнением
Т.е., когда EditBox редактируется приложение придется поработать на холостом ходу 1сек и слушать, если он редактируется снова если это правда, ждать еще секунду если ложно, выполнить DoSearch
Я надеюсь, что вы можете понять мою ситуацию
et = (EditText) findViewById(R.id.Searchfield);
et.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) { }
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
public void onTextChanged(CharSequence s, int start, int before, int count) {
new DoSearch().execute();
}
});
EDIT: ок я решил проблему я определить Int SEARCHCOUNT как 0 Каждый раз, когда TextEdit изменяется это называется обработчик задержкиобработчик задержки выполнить только DoSearch на последней задержки вызова обработчика, проверяя, если SEARCHCOUNT равно последний
et = (EditText) findViewById(R.id.SearchCoupon);
et.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) { }
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
public void onTextChanged(CharSequence s, int start, int before, int count) {
searchCount++;
SearchHandler.sendMessageDelayed(SearchHandler.obtainMessage(searchCount), 1000);
}
});
private Handler SearchHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
if(msg.what == searchCount) {
new DoSearch().execute();
System.out.println("Success" + searchCount + "=" + msg.what);
}
else {
System.out.println(msg.what + " - " + searchCount);
}
}
};
Существует место, чтобы улучшить этот метод? или это действительно эффективный способ?
Задержка работает, но она не отменяет других, и когда задержка завершена, спам doSearch снова ... или я использую его неправильно – Kirma
Я не уверен, что вы подразумеваете под спамом. но если он сбой, вы можете вывести вывод logcat. – nandeesh
Я решил проблему, есть место, чтобы улучшить этот метод? или это действительно эффективный способ? – Kirma