最初のケース
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
2 番目のケース
OnBackPressed();
backKeypress イベントをオーバーライドするのに適したケースはどれですか?
最初のケース
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
2 番目のケース
OnBackPressed();
backKeypress イベントをオーバーライドするのに適したケースはどれですか?
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
メソッドが起動します。電話をかけないと、電話はかけられません。 onKeyDown
onBackPressed
super.onKeyDown
onBackPressed
2.0未満をターゲットにする特別な理由がない限り、気にする理由はあまりありません。
私はあなたが使うべきだと思います:
@Override
public void onBackPressed() {
//...
}
イベントをオーバーライドしたいだけの場合。ユーザーが物理的にバックキーをクリックしたことを検出したい場合は、最初の方法が適しています。
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
このイベントのオーバーライドについて話している場合は、最初のイベントを実装するのが適切です。
以下を使用する必要があります。
@Override
public void onBackPressed() {
}