アクティビティに次のコードがあります。これらすべてのメソッドにブレークポイントを設定しています。メニューボタンを押すと、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 をオーバーライドしていることを教えてくれます。