gpt4 book ai didi

android - Activity.finish() 和 startActivityForResult() 如何相互协作?

转载 作者:行者123 更新时间:2023-11-29 16:25:34 26 4
gpt4 key购买 nike

我有一个关于 Activity.finish() 的问题。

在我的 Android 代码中,有 4 个 Activity (ABCD)。开始 Activity A 调用 startActivityForResult(intent, reqCode) 来开始 Activity BB开始C,然后finish(),不等待结果。 CB 完全相同,开始D 然后是finish()D 将通过setResult(resultCode) 返回一些结果。

当我的代码运行并且 Activity D 返回一些结果时,A 将在 onActivityResult() 上捕获 RESULT_CANCELED >,即使 RESULT_OKD 中返回。我猜 RESULT_CANCELED 来自 Activity B,它在 D 返回结果之前已被终止,而不是来自 D

但是,我的问题是,为什么 Activity AD 返回一些结果之后捕获 RESULT_CANCELED,而不是在 B< 之后立即捕获/strong> 终止了吗?而且,我应该怎么做才能使 AD 捕获结果?我是否必须让 BC 保持 Activity 状态,才能将结果从 D 传递给 A

最佳答案

根据您的解释,我了解到 Activity A 开始B 开始CC 开始 D.

B 在启动 C 之后调用 finish() 并且 C 也做同样的事情。

由于 B 已被 A 启动,它将等待 B 的结果,因为 A没有链接到D,即使D返回一些结果也没关系。

如果你想在 AonActivityResult() 中得到 RESULT_OK,你必须从 B< 接收有效结果/强>。为此,您必须在 C 中接收 D 的结果,然后将其传递给 B,然后从 B 传递它到A

你可以在BConActivityResult()中调用finish(),将结果返回给他们各自通过 Intent 调用 Activity 。

我想,我正确理解了你的问题。如有不妥,请见谅。

关于android - Activity.finish() 和 startActivityForResult() 如何相互协作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4162424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com