检查是否在安卓中按下了后退键?

2022-09-01 20:08:26

假设我正在进行主要活动,并且我开始了一项新活动

MainActivity > NewActivity

从我按后退键NewActivity

MainActivity < NewActivity

如果它在关闭后显示,我想做一些事情,但不是在正常运行时,例如首次运行应用程序时。有谁知道这是否可能?MainActivityNewActivityMainActivity


答案 1
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        Log.d(this.getClass().getName(), "back button pressed");
    }
    return super.onKeyDown(keyCode, event);
}

@Update。如果你想在NewActivity完成时收到通知,你必须通过startActivityForResult(Intent,requestCode)来启动它。然后,您必须在 MainActivity 上覆盖 onActivityResult()。检查这里的请求码参数,如果返回码等于提交码(当你启动childActivity时),放一些代码来做你的生意。

int MYCODE=1000;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // Result OK.d.
    if (requestCode == MYCODE) {
        // do something good
    }
}

答案 2

我尝试以下方法来检测第一种方法在活动中按下操作栏上的后退按钮,第二种方法用于检测移动硬件按钮返回或杀死活动按钮。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()){
        case android.R.id.home:
            onBackPressed();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

@Override
public void onBackPressed() {
    setResult(RESULT_CANCELED);
    super.onBackPressed();
}

推荐