Java 如何在不完成/停止子活动的情况下从子活动完成父活动?

Java 如何在不完成/停止子活动的情况下从子活动完成父活动?,java,android,mobile,android-activity,android-lifecycle,Java,Android,Mobile,Android Activity,Android Lifecycle,我是android的初学者。有人能帮我举个例子吗 到目前为止,我已经搜索了它,但没有找到有用的东西。只发现关闭父活动还需要使用setResult()方法关闭子活动 我想要的是,我的父活动应该从子活动关闭,而不完成子活动。我建议您阅读 首先,android中的活动被放在一个称为“活动堆栈”的堆栈上,如果我的记忆正常的话。启动活动时,可以添加将影响堆栈的意图标志,如 addFlags(意图、标志、活动、清除任务) 我想我已经做了你们想做的事情(我不确定我用了什么标志,那是很久以前的事了:p)。但只需

我是android的初学者。有人能帮我举个例子吗

到目前为止,我已经搜索了它,但没有找到有用的东西。只发现关闭父活动还需要使用setResult()方法关闭子活动

我想要的是,我的父活动应该从子活动关闭,而不完成子活动。

我建议您阅读

首先,android中的活动被放在一个称为“活动堆栈”的堆栈上,如果我的记忆正常的话。启动活动时,可以添加将影响堆栈的意图标志,如

addFlags(意图、标志、活动、清除任务)


我想我已经做了你们想做的事情(我不确定我用了什么标志,那是很久以前的事了:p)。但只需阅读有关活动任务的内容,就可以知道什么意图标志适合您正在尝试的操作。

活动A->活动B, 删除活动A

如果这就是你要找的

  Intent intent = new Intent(this, B.class);
    startActivity(intent);
    finish();

在子活动中,尝试使用返回父活动的getParent()方法,然后()完成它

活动后台堆栈的工作方式类似于堆栈,即您可以弹出活动并将其推送到堆栈上。如果不先在堆栈上删除活动上方的活动,则无法从堆栈中删除活动。因此,如果孩子不先完成自己的活动,就不可能完成父母的活动


有几种方法可以用来重新排序,甚至可以通过使用and清除“活动后台堆栈”。

创建一个类似上下文的静态变量 静态上下文cntxofParent

然后在父活动中初始化该引用,如

cntxofParent=ParentActivityName.this

当您处于子活动中时,请收集该上下文并将其转换为活动,如下所示:

活动父活动


parentActivity=(Activity)cntxofParent

谢谢您的回复!!了解任务和后台堆栈的不错的教程。但未根据我的要求从子活动中找到任何用于完成父活动的匹配意图标志。在这里,这是一个声明在家长活动本身。感谢您的回复!但是我想从子活动中完成父活动。@sunny在回答之前请正确阅读问题。getParent()调用仅适用于嵌入式活动,例如Activitygroup(现已弃用)。对于常规活动,getParent()将始终返回null。