我有一个 Activity 启动另一个结果。事实是我需要触发另一个 Activity 以获得这个结果。这可能吗?
例如,Activity A 调用 Activity B 获取结果,但 Activity B 需要调用 Activity C 获取结果才能获取正确的数据。
我不知道当我为结果启动 Activity C 时,Activity B 是否会将其(不完整)结果发送给第一个调用 Activity(Activity A)。
如果可以做到,我应该如何处理这些活动的结果?
谢谢!
我有一个 Activity 启动另一个结果。事实是我需要触发另一个 Activity 以获得这个结果。这可能吗?
例如,Activity A 调用 Activity B 获取结果,但 Activity B 需要调用 Activity C 获取结果才能获取正确的数据。
我不知道当我为结果启动 Activity C 时,Activity B 是否会将其(不完整)结果发送给第一个调用 Activity(Activity A)。
如果可以做到,我应该如何处理这些活动的结果?
谢谢!
这可以。只要 Activity B 仍在运行,它就不会触发任何返回 A 直到它完成。
启动 A -> B -> C 然后关闭 C 将意味着 B'sonActivityResult
将触发,然后关闭 B 将触发 A's 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类来存储您可以从所有活动中访问的全局状态。