2

最初のケース

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {

2 番目のケース

OnBackPressed();

backKeypress イベントをオーバーライドするのに適したケースはどれですか?

4

4 に答える 4

4

2.0より前のバックプレスをキャッチしたい場合は、次のonKeyDownような方法を使用できます。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        //Do something on back press
    }
    return super.onKeyDown(keyCode, event);
}

興味深いことに、onBackPressedとonKeyDownの両方をオーバーライドすると、両方がonKeyDown最初にバックプレスをキャッチしてバックプレスをキャッチします。

上記のように呼び出すと、super.onKeyDownメソッドが起動します。電話をかけないと、電話はかけられません。 onKeyDownonBackPressedsuper.onKeyDownonBackPressed

2.0未満をターゲットにする特別な理由がない限り、気にする理由はあまりありません。

于 2013-02-21T14:29:51.307 に答える
2

私はあなたが使うべきだと思います:

    @Override
    public void onBackPressed() {

        //...
    }

イベントをオーバーライドしたいだけの場合。ユーザーが物理的にバックキーをクリックしたことを検出したい場合は、最初の方法が適しています。

于 2013-02-21T14:19:55.823 に答える
1
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {

このイベントのオーバーライドについて話している場合は、最初のイベントを実装するのが適切です。

于 2013-02-21T14:26:07.940 に答える
0

以下を使用する必要があります。

    @Override
    public void onBackPressed() {

    }
于 2013-02-21T14:23:57.773 に答える