首页 > 解决方案 > Android startActivityForResult 返回 BackPressed 事件的结果代码

问题描述

我写了一个标准SettingsActivity。我需要在Activity关闭后检查给定的设置。SettingsActivity标准关闭时触发的典型事件是onBackPressed事件。这是我的代码:

@Override
public void onBackPressed() {
    super.onBackPressed();
    Intent intent = new Intent();
    setResult(RESULT_CODE, intent);
    finish();
}

SettingsActivity 是这样打开的:

Intent intent = new Intent(this, SettingsActivity.class);
startActivityForResult(intent, SettingsActivity.RESULT_CODE);

这是检查活动返回的代码:

if((requestCode == SettingsActivity.RESULT_CODE) && (resultCode == SettingsActivity.RESULT_CODE)) 
{
    if(settings.control_mode == ControlMode.GCS)
    {
        settings.getSettings(this);
        selectController(getString(R.string.gcs_controller_id));
        settings.storeSettings(this);
    }
}

requestCode设置正确,但resultCode我认为始终为零,因为我正在通过onBackPressed事件处理程序设置它,但我不知道如何以不同的方式进行设置。我怎样才能解决这个问题?

标签: javaandroid

解决方案


删除super.onBackPressed();. 这已经完成了当前的活动


推荐阅读