活性A-> B-> C-> A.如何在A的onActivityResult上获取B的数据

时间:2016-07-07 01:50:56

标签: android

我有三个活动,称为A,B和C. A是B和C的父活动。以下是所有可能的活动流程。

  1. A - > B - >按下操作栏中的后退或上移按钮 - >甲
  2. A - > C - >按下操作栏中的后退或上移按钮 - >甲
  3. A - > B - > C - >按下 - >乙
  4. A - > B - > C - >按下操作栏中的按钮 - >甲
  5. B和C都可以修改存储在A中的数据。所以我让B和C通过意图将修改后的数据发送回A,并使用A的onActivityResult来更新这些数据。

    问题在于流程4,如果B修改了某些数据,我该如何将这些修改发送回A?我应该将它们传递给C并让C将它们发送回A而C绝对不需要这些数据吗?

    更新

    我在流程4中发现。活动A的onActivityResult未收到返回的IntentIntent参数始终为null,因此我们无法通过从C到A的数据。

    最初我认为A会收到C Intent,所以我可以将B的数据传递给C然后传递给A,但这是错误的。活动A在流程4中未收到任何Intent

    现在我决定更改向上按钮的动作,使其与后退按钮相同,因此流程4将消失。

2 个答案:

答案 0 :(得分:0)

流程4没有问题。

只需修改B中的数据,无需将数据传递给其他活动。

在B完成之前调用setResult(),像其他flow.it将返回A成功。

答案 1 :(得分:0)

这不是问题的直接答案,而是建议:

如果活动之间存在较高的互动或需要过多的活动,而不是过多的活动或活动交易,请尝试使用碎片

使用界面(与JAVA相同/相似)是片段的魔杖。 使用碎片使编码变得像在字面上交换页面一样简单(诅咒有用)。

以下是有用的链接:(您可以复制,粘贴此代码并根据您的要求进行操作)

  1. https://developer.android.com/guide/components/fragments.html
  2. https://developer.android.com/training/basics/fragments/creating.html