Android Activity setResult不是持久的吗?

时间:2010-11-11 16:01:17

标签: android android-activity

因此,我正试图通过黑客攻击快速绑定我正在发布的another question中描述的问题。

我有一个由我的主要活动启动的子活动,它也可以通过调用finishActivity(requestCode)的主活动来停止。但是,在finishActivity调用之后,子活动始终返回0 - 即使我只在用户按下后退按钮时在子活动中设置了该结果。我试图通过在子活动onResume方法中调用setResult(RESULT_OK)来作弊,但这似乎没有区别;

另外,由于某种原因,在onActivityResults进入之前需要很长时间。这是正常的吗?

感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

观察同样的行为。在调用finishActivity()的主类中,我必须记住我强制关闭的Activity的ID,因此当它返回onActivityResult时我可以区分两种情况:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == Activity.RESULT_CANCELED) {
        switch (requestCode) {
            case OUTSOURCED_INTENT:
            {
                if(mForcedClosingOfOutsourcedActivity)
                {
                    //Handles case of forced closing
                }
                else
                {
                    //Handles case of normal closing from Activity
                }
            }
            break;
        }
    }
}    

当然,在活动结束前等待这么长时间是不行的。