0

アクティビティに次のコードがあります。これらすべてのメソッドにブレークポイントを設定しています。メニューボタンを押すと、onKeyDown と onKeyUp に入ります。戻るボタンを押すと、アプリが閉じ、電話はブレークポイントを通過せずにホーム画面に戻ります。

編集:これは、ほとんどの情報源に従って機能するはずです:

@Override
public void onBackPressed() {
    SwitchToMenuState();
}

しかし、そうではありません。次のコード ブロックのすべての順列を試しましたが、どちらも呼び出されませんでした。

@Override
public void finish()
{
    SwitchToMenuState();
}   

public boolean onKeyUp(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        SwitchToMenuState();
    }
    return true;
}

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        SwitchToMenuState();
    }
    return true;
}   

私は Android 2.3 と Processing を使用していますが、Processing とはまったく関係がないようです。Eclipse は、私が android.app.Activity.onBackPressed をオーバーライドしていることを教えてくれます。

4

3 に答える 3

0

Android 1.x で onKeyDown を使用し、Android 2.x で onBackPressed を使用します。

また、両方ではなく、どちらか一方のみを使用してください

于 2012-12-01T17:10:59.847 に答える
-1

押し戻すと、このアクティビティの前にアクティビティがない場合、アプリは閉じます。使用を開始できます: startActivity(intent);

于 2012-12-01T16:46:21.623 に答える