Я хочу, чтобы веб-служба вызывалась через 3 секунды каждый раз, когда вы обновляете значение EditText
, но в случае, если вы обновите значение EditText
до 3 секунд, удалите все задержанные обратные вызовы и подождите 3 секунды для веб-службы звоните. Пожалуйста, см. мою треску и дайте мне знать, как правильно выполнить эту задачу.Отмена postDelayed in onTextChanged
@Override
public void onTextChanged(final CharSequence s, int start, int before, int count) {
if (s.length() > 2) {
final Handler handler = new Handler();
handler.removeCallbacksAndMessages(null);
handler.postDelayed(
new Runnable() {
@Override
public void run() {
// Soap call
}
},
3000);
}
}
Можете ли вы объявить обработчик обработчика «final handler = new Handler();» вне этой области, так что он всегда должен указывать на один обработчик и удалять ожидающие и сбросить. – Vinodh
создать обработчик переменной-члена и использовать handler.removeCallbacksAndMessages. –