如何从儿童活动中完成父活动

时间:2012-03-12 08:58:55

标签: android android-intent android-activity android-2.2-froyo android-ui

我是Android开发的新手。

我创建了一个主要的Activity( - > A),它有4个按钮。其中一个按钮是EXIT按钮。

点击退出按钮,我开始另一项活动( - > B)。这将通过'A'Activity的意图打开'B'Activity。

活动'B'包含 - 你要退出吗?是的 - 按钮&无键式

如果我给完成(),按下按钮 - 它会退出'B'Activity。我想完成'B'& 'A'。

我甚至尝试过A.finish() - >这不会被识别并导致语法/语义错误。

我很感激这里的帮助。

P.S:我使用的是Android-2.2版手机,我不喜欢用ActivityManager来解决这个问题。

3 个答案:

答案 0 :(得分:49)

尝试使用

启动子活动
 startActivityForResult(intent, REQUEST_EXIT);

在儿童活动中

case R.id.quit:
     setResult(RESULT_OK, null);
     finish();

在父母活动中

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == REQUEST_EXIT) {
         if (resultCode == RESULT_OK) {
            this.finish();

         }
     }
}

答案 1 :(得分:6)

活动A 中使用startActivityForResult()作为开始活动B,在{A} onActivityResult()活动A中使用finish()。在按下的活动B中仅按{{1 } 活动B

答案 2 :(得分:5)

您可以从儿童活动中完成父活动,例如......

在父母......

 startActivityForResult(new Intent(Parent.this, Child.class), ACTIVITY_CONSTANT);

并覆盖Parent中的OnActivityForResult(...)方法。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == ACTIVITY_CONSTANT)
    {
        finish();
    }
}

当您在子活动上调用finish()时,它也会完成父级。