在我的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
开始。这种延迟来自哪里?隐藏键盘是我执行的第一件事
答案 0 :(得分:2)
请注意您如何获得InputMethodManager
作为系统服务?
这意味着您对hideSoftInputFromWindow
的调用是在系统Service
上执行的,这意味着它始终在应用旁边的后台运行,这意味着当您隐藏键盘时,它实际上并行运行作为执行活动的应用创建。