管理打字超时的最佳方法是什么?
我尝试了这样的代码(受代码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 );