android 未检测到标题栏中的向上按钮按下

android Up button press in title bar not getting detected

我尝试了以下方法来检测 activity 中的后压:

private static final String TAG = "PRESSED";

@Override
public void onBackPressed() {
    Log.i(TAG,"BACK");
    super.onBackPressed();
}

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        Log.i(TAG, "Back pressed");
    }
    return super.onKeyUp(keyCode, event);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        Log.i(TAG, "Back pressed 1");
    }
    return super.onKeyDown(keyCode, event);
}

更新:

onKeyDown、onKeyUp 和 onBackPressed 在按下屏幕底部 "On screen buttons" 上的后退按钮时工作,这是这样的:

但是在标题栏中按下向上按钮时不工作,这是这样的:

为什么在按下标题栏中的向上按钮时它们不起作用?

这是您的主代码 activity

@Override
    public boolean onNavigateUp() {
        // TODO Auto-generated method stub

        getFragmentManager().popBackStack();

        return true;
    }
    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub

        // for closing activity 

        boolean canback = getFragmentManager().getBackStackEntryCount()==1;

        if (canback) {
            finish();
        }
        else {

            super.onBackPressed();

        }

    }

也许是这个? 它使 ActionBar 后退按钮像后退按钮一样工作。

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
            if (item.getItemId() == android.R.id.home) {
                    onBackPressed();
                    return true;
            }
            return super.onOptionsItemSelected(item);
    }