Android:具有BACK按钮功能的startActivityForResult()

Arn*_*rty 12 java android activity-finish android-activity

我想开始一个新activityresult,有startActvityForResult(),但我想有back按钮正常工作在新的活动.

目前,当我调用new Activityfor result时,当我按下新Activity中的后退按钮时没有任何反应.

我试过这样的事情:

@Override
public void onBackPressed() {
    setResult(0);
    super.onBackPressed();
    finish();
}
Run Code Online (Sandbox Code Playgroud)

在新的活动中,但它没有奏效.按下后退按钮时仍然没有任何反应.

有没有解决的办法?

编辑:我当然可以加载最后ActivityonBackPressed()(可以吗?),但它似乎是一个相当糟糕的黑客.

Alex Ady的回答解决了我的问题,但我仍然不明白为什么onBackPressed()不起作用.现在的工作代码是这样的:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        setResult(1);
        finish();
    }
    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

我可以用一个解释.

小智 14

你可以试试

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
         finish();
    }
    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)


Bri*_*ham 7

您根本不必覆盖"后退"按钮行为.默认情况下,如果用户按下后退按钮,结果将是Activity.RESULT_CANCELED.