我调用一个带返回值的活动:
现在在我的Details.class中,我调用以下代码返回到之前的活动:
private static final int CODE_LOGIN = 0;
private static final int CODE_DETAILS = 1;
private void callDetailsActivity() {
Intent switchToDetailsActivity = new Intent(getApplicationContext(), Details.class);
switchToDetailsActivity.putExtra(TAG_ID, details.get(TAG_ID));
startActivityForResult(switchToDetailsActivity, CODE_DETAILS);
}
现在在我的Details.class中,我调用以下代码返回到之前的活动:
@Override
public void onBackPressed() {
setResult(RESULT_OK);
super.onBackPressed();
}
然后是我的onActivityResult()
方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == CODE_LOGIN) {
// This is for my other Activity, where the "return" works
}
}
updateOffers();
}
但是,我并没有回到之前的课堂,应用程序关闭了,并没有任何错误日志。当我按下主页按钮返回之前的应用程序时,我可以进入我的应用程序,然后我就在之前的活动中了,但这明显不是它应该工作的方式。
我还尝试了不改变 onBackPressed()
,或者只是在 onBackPressed()
中写入 finish()
,但什么都没有用。
我没有设置 android:noHistory="true"
对于我的另一个 Activity(使用完全相同的代码),它完美地工作(CODE_LOGIN)。
有人能帮帮我吗?
startActivityForResult
后是否调用了finish()
? - IAmGrootCODE_DETAILS
的值是多少? - David Wasser