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

sud*_*hkr 21 android android-intent android-ui android-2.2-froyo android-activity

我是Android开发的新手.

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

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

活动'B'包含 - 你要退出吗?是 - 按钮和无按钮.

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

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

我很感激这里的帮助.

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

Geo*_*zov 50

尝试启动子活动

 startActivityForResult(intent, REQUEST_EXIT);
Run Code Online (Sandbox Code Playgroud)

在儿童活动中

case R.id.quit:
     setResult(RESULT_OK, null);
     finish();
Run Code Online (Sandbox Code Playgroud)

在父母活动中

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

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

         }
     }
}
Run Code Online (Sandbox Code Playgroud)


use*_*305 6

使用startActivityForResult()活动A用于启动活动B和onActivityResult()以公正的finish()活动A.在上按钮活动B只按finish() 活动B.


San*_*osh 5

您可以通过子活动完成父活动,例如......

在父母......

 startActivityForResult(new Intent(Parent.this, Child.class), ACTIVITY_CONSTANT);
Run Code Online (Sandbox Code Playgroud)

并覆盖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();
    }
}
Run Code Online (Sandbox Code Playgroud)

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