繁体   English   中英

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

[英]How to finish parent activity from child activity without finishing/stopping child activity?

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

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

我真正要寻找的是我的父项活动应该在不完成子项活动的情况下与子项活动关闭。

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

活动后退堆栈的工作方式类似于堆栈,即您可以将活动弹出并推入堆栈。 您必须先从堆栈上的活动上移,然后才能从堆栈中移除活动。 因此,如果没有先完成自我,孩子就不可能完成其父母的活动。

通过使用launchmodesIntent标志,可以使用多种方法对活动重新排序甚至清除活动堆栈。

创建一个静态上下文变量,例如静态上下文cntxofParent; 在ParentActivity中

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

cntxofParent = ParentActivityName.this;

当您从事子活动时,请收集该上下文并将其投放到“活动”中,如下所示:

活动parentActivity;

parentActivity =(活动)cntxofParent;

我建议您阅读有关任务和回栈的信息

首先,将android中的活动放在称为an的堆栈中,如果我的记忆正确的话,请输入Activity堆栈。 开始活动时,您可以添加一个会影响堆栈的意图标志,例如

addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)

我想我以前已经做过您想做的事情(我不确定我使用了什么标志,那是很久以前的:p了)。 但是只要阅读一下活动任务,就可以知道什么意图标志适合您要尝试做的事情。

从子活动中完成父活动而不完成子活动并不是一项复杂的任务...您必须在父活动中声明一个活动变量。

static HomeScreen firstActivity; //Activity Variable

 In oncreate method assign the variable 

 firstActivity=this;

 public static HomeScreen getActivity()
 {
    return firstActivity;
 }

并在子活动中访问父活动变量。

HomeScreen.getActivity.finish();

有关更多详细信息,请单击此处

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

如果这是您要寻找的

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM