1

私の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が始まります。この遅延はどこから来るのでしょうか? キーボードを隠すことは、私が最初に実行することです

4

1 に答える 1

2

InputMethodManagerシステム サービスとして取得する方法に注意してください。

これは、 への呼び出しがhideSoftInputFromWindowsystemServiceで実行されることを意味します。これは、常にアプリと一緒にバックグラウンドで実行されていることを意味します。つまり、キーボードを非表示にすると、アクティビティの作成を実行しているアプリと実際に並行して実行されます。

于 2013-09-07T18:29:24.903 に答える