3

いくつかのポップアップ ウィンドウを表示し、ユーザーが [戻る] をクリックするとそれらを閉じる IME を作成しました。99% の確率で動作しますが、一部のアプリ (ブラウザなど) はKeyEvent.KEYCODE_BACKIME の前にインターセプトでき、ポップアップ ウィンドウが開いたままになります。

ドキュメントによると、InputMethodService はアクティビティの前にキー イベントを受け取る必要があります。これをアクティビティでテストしたところ、期待どおりに機能します。

ブラウザのソースコードを確認したところ、Activity.onKeyDown()andをオーバーライドするだけで、 andのonKeyUp()にイベントを受け取るはずです。 InputMethodService.onKeyDown()onKeyUp()

ブラウザーが重要なイベントを間違った順序で受け取るように見えるのはなぜですか? すべてのポップアップに醜い閉じるボタンを追加する必要がないので、助けてください!!!

前もって感謝します、

バリー

4

1 に答える 1

1

そのActivity.onBackPressed()。このボタンの機能を上書きする場合は注意してください。予期しないことを行ったり、戻るボタンを完全に無視したりすると、ユーザー エクスペリエンスが非常に悪くなる可能性があります。

ポップアップに AlertDialogs などを使用している場合は、機能をオーバーライドする必要はなく、単に setCancelable(true) を使用するだけです。画面をタッチして戻るボタンを押すと、ダイアログが閉じます。

于 2011-07-13T22:52:41.130 に答える