如何在没有完成/停止儿童活动的情况下完成儿童活动的父母活动?

时间:2012-09-16 10:49:56

标签: java android mobile android-activity android-lifecycle

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

到目前为止,我一直在寻找它,但没有找到有用的东西。只发现关闭父活动还需要使用setResult()方法关闭子活动。

我正在寻找的是我的父活动应该从儿童活动中关闭而不完成儿童活动。

6 个答案:

答案 0 :(得分:1)

从子活动中,尝试使用返回父活动的getParent()方法,并完成()它!

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

创建Context的静态变量 ParentActivity中的静态上下文cntxofParent;

然后在Parent Activiy中初始化该引用,如

<强> cntxofParent = ParentActivityName.this;

当您从事儿童活动时,请收集该背景并将其投射到活动中,如下所示

活动parentActivity;

<强> parentActivity =(活动)cntxofParent;

答案 3 :(得分:0)

我建议你阅读Task and Back Stack

首先,如果我的记忆正确,活动堆栈,那么android中的活动会被放在一个名为的堆栈上。当您启动一个活动时,您可以添加一个影响堆栈的意图标志,例如

addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)

我想我已经完成了你之前想要做的事情(我不确定我用过的是什么旗帜,这是很久以前的事了:p)。但是,只需了解活动任务,就可以了解哪些意图标志适合您要做的事情。

答案 4 :(得分:0)

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

static HomeScreen firstActivity; //Activity Variable

 In oncreate method assign the variable 

 firstActivity=this;

 public static HomeScreen getActivity()
 {
    return firstActivity;
 }

并访问Child Activity中的父活动变量..

HomeScreen.getActivity.finish();

有关详细信息,请点击here

答案 5 :(得分:-1)

活动A - &gt;活动B, 删除活动A,

如果这是您正在寻找的

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