1

在我的Activity我有AutoCompleteTextView一个下拉列表。当用户选择一个项目时,将Activity启动一个新项目。由于我在 next 中有很多东西Activity,所以在它开始之前会有大约 0.5-1s 的延迟。我试图在选择项目后立即隐藏软键盘:

   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开始。这种延迟从何而来?隐藏键盘是我执行的第一件事

4

1 回答 1

2

请注意您是如何获得InputMethodManager系统服务的?

这意味着您的调用hideSoftInputFromWindow是在系统上执行的Service,这意味着它始终在您的应用程序旁边的后台运行,这意味着当您隐藏键盘时,它实际上与执行活动创建的应用程序并行运行。

于 2013-09-07T18:29:24.903 回答