管理打字超时的最佳方法是什么?

我尝试了这样的代码(受代码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(...)函数相同的行为。

任何帮助表示赞赏

最佳答案

当按下新键时,您可以取消以前发送给处理程序的消息:

Message msg = Message.obtain(messageHandler, MESSAGE_TEXT_CHANGED, arg0.toString());
messageHandler.removeMessages(MESSAGE_TEXT_CHANGED);
messageHandler.sendMessageDelayed(msg, 1000 );

10-08 17:37