从应该返回结果的另一个活动开始一个活动

时间:2013-07-06 08:24:32

标签: android start-activity

我有一个Activity,它会为结果启动另一个。事实是我需要从这个触发另一个Activity来获得结果。这可能吗?

作为示例,活动A将活动B称为结果,但活动B需要调用活动C以获得正确的数据。

我不知道当我为结果启动活动C时,活动B是否会将其(不完整)结果发送到第一个调用活动(活动A)。

如果可以这样做,我该如何处理这些活动的结果?

谢谢!

1 个答案:

答案 0 :(得分:1)

这很好。只要活动B仍在运行,它就不会在A完成之前触发任何回复。

启动A - > B - > C然后关闭C将意味着B的onActivityResult将触发,然后关闭B将触发A的onActivityResult

因此,在活动B中,您需要一些逻辑:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == ACTIVITY_C && resultCode == RESULT_XXX) {
        // Get the result from C, etc. Whatever you need to do
        String stuff = data.getStringExtra("XXX");
        Intent output = new Intent();
        output.putExtra(XXX, stuff);
        setResult(RESULT_XXX, output);
        finish();
    }
}

然后你可以在活动A中找到它。

另一个选择:如果您发现自己需要在很多活动中共享数据并且逻辑似乎变得复杂,您可能会考虑使用 Application 类来存储您可以从所有活动访问的全局状态。