管理处理输入超时的最佳方法是什么?
我尝试了这样的代码(受代码here启发):
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
//...
Message msg = Message.obtain(messageHandler, MESSAGE_TEXT_CHANGED, arg0.toString());
messageHandler.sendMessageDelayed(msg, 1000 );
//...
}
但是在日志中我可以看到,无论我输入多快,每次按键时都会调用地理编码器。我希望像Javascript的setTimeout(...)函数一样具有相同的行为。
任何帮助表示赞赏
答案 0 :(得分:1)
您可以在按下新键时取消之前发送给处理程序的消息:
Message msg = Message.obtain(messageHandler, MESSAGE_TEXT_CHANGED, arg0.toString());
messageHandler.removeMessages(MESSAGE_TEXT_CHANGED);
messageHandler.sendMessageDelayed(msg, 1000 );