7

これが私の問題です。

アプリケーションの音量ダウンキーを上書きして、長時間押している間に特定のタスクを実行します。正常に機能します。そのためのキーダウンイベントとキーアップイベントをインターセプトできます。

キーリスナーイベントは、特定のカスタムコンポーネントで作成され、このコンポーネントが使用されるアクティビティでは作成されません。

音量小キーを押しながらメニューボタンを押すと問題が発生し、メニューが表示されているときに離すと、キーアップイベントをインターセプトできません。

その背後にある理由を説明できますか?そして、この問題が解決できるかどうか?

ありがとう。

4

1 に答える 1

5

メニューをクリックすると、ウィンドウのフォーカスが変わります。フォーカスがメニュー ビューに来ます。このため、画面のフォーカスが一番上にあるビューまたはアクティビティにある場合に onKeyDown が機能するため、 onKeyDown() は機能しません。

次のコードを使用して、画面のフォーカスを確認します

@Override
    public void onWindowFocusChanged(boolean hasFocus) {
        // TODO Auto-generated method stub
        System.out.println("....window focus changed..");
        super.onWindowFocusChanged(hasFocus);
    }
于 2011-06-30T08:13:53.217 に答える