仅完成SubActivity

时间:2013-12-01 21:41:37

标签: java android android-intent android-activity

如何使用Finish仅杀死subActivity?

我正在从活动A

启动活动C.
public classA {

....

Intent launchC  = new Intent(classA .this, ClassC.class);
     startActivityForResult(launchC  , CodeAtoC);
}


public ClassC extends ClassB{
   ....
   this.finish();
}

当我在C类中调用this.finish()时,我不希望完成超类活动ClassB。这可行吗?如果没有,我可以采用更好的设计吗?

感谢。

1 个答案:

答案 0 :(得分:0)

startActivityForResult(launchC  , CodeAtoC);

这只会启动classC。扩展classB并不意味着在实例化classC对象时创建两个对象 - 它只是意味着您获得了类继承的好处(访问classB的结构和方法)。

更好的实现方法可能是将ClassC和ClassB转换为Fragments,然后从A启动FragmentActivity。您将使用FragmentActivity来显示C,然后让它在B中交换(通过FragmentTransaction)单击一个按钮或其他内容,然后在完成后将结果返回到A.

http://developer.android.com/guide/components/fragments.html