我在使用意图方面遇到了问题 应用程序中有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的完整菜鸟,任何解决方法或解决方案欢迎... 谢谢!!
答案 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。