在我的Activity
中,我有一个带有下拉列表的AutoCompleteTextView
。当用户选择项目时,将启动新Activity
。由于我在接下来的Activity
中有很多东西,因此在开始之前大约有 0.5-1 秒的延迟。我试图在选择项目后立即隐藏软键盘:
actvActionSearch.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View v,
int position, long id) {
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(actvActionSearch.getWindowToken(), 0);
//do stuff to prepare and start next Activity
}
});
但是,软键盘在下一个Activity
启动的同时被隐藏。这种延迟从何而来?隐藏键盘是我做的第一件事
请注意您如何获得InputMethodManager
作为系统服务?
这意味着您对hideSoftInputFromWindow
的调用是在系统Service
上执行的,这意味着它始终在应用程序一侧的后台运行,这意味着当您隐藏键盘时,它实际上会并行运行,因为您的应用程序正在执行活动创建。