在应用程序中使用多个意图

时间:2011-10-07 12:18:52

标签: android android-intent

我在使用意图方面遇到了问题 应用程序中有5个活动 传递意图附加物的自然流动是A - > B - > C - > D - > E

然而,根据条件,C可能会或可能不会启动  当C没有启动时,我想直接从B开始D. 这次D将需要来自A和B的数据

如果C启动它会增加一些额外的意图并启动D. (D需要A,B和C的额外内容)

目前我有2个制作2份D来接收这样的意图

有没有一种方法,我可以有一个D的副本,它将根据它是否由B或C实例化而开始 或者D应该获得C提出的额外意图?

我是Android的完整菜鸟,任何解决方法或解决方案欢迎... 谢谢!!

2 个答案:

答案 0 :(得分:0)

添加一个额外的标志,以决定调用哪个活动D.当你启动活动D时检查这个标志,如果你从C调用,则查找从C表单传递的额外内容,否则忽略它们。

在活动B中。

Intent i = newIntent(context,D.class);       i.putExtra(“fromC”,false);       startActivity(ⅰ);

活动C中的

Intent i = newIntent(context, D.class);
  i.putExtra("fromC", true);
  // add more extras.
  startActivity(i);

活动D:

boolean fromC = getIntent().getBooleanExtra("fromC");
  if (fromC) {
      // read extras that have been passed from C.
  }

HTH。

答案 1 :(得分:0)

无需复制活动D. 如果intent中没有extras,那么返回null,所以你必须检查我在哪里得到null。