2011-11-13 91 views
2

我已经开始使用startActivityForResult进行活动。在开始的活动中,我想使用finishActivityFromChild完成调用活动。但它不起作用。可能还有其他方法。是否可以完成调用活动

+0

我可以知道你为什么要杀死呼叫活动吗? – 500865

+0

这是因为我的应用的业务逻辑不允许在下一个活动中调用某个动作时返回。 –

回答

2

在儿童活动中是否有杀死父母活动的原因?刚开始孩子后你是否想立即杀死父母?如果父活动未使用从子活动返回的结果,并且刚刚被子活动中止,我没有看到使用startActivityForResult()的要点。

如果你根本不需要父活动开始一个新的活动后存在,你可以使用下面的代码:

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

如果你想真正的结果返回从父活动子活动,然后完成父活动,则必须通过完成子活动才能返回到父活动,以便运行父活动中的onActivityResult()。如果孩子的活动需要返回一个结果来处理它自己不能完成的事情,那么你可能需要一个服务来处理它。

+0

考虑一下:活动A调用B来获得结果。如果B成功,则必须调用C。我们不希望用户看到从B跳到A的动画,而是跳到C,但只是一个简单的A-> B-> C或A-> B-> a(失败时)。用例:应用程序概述,登录到用户概述。 – Greg

0

如果你startActivityForResult,那么如果你杀了父级活动,结果会怎样?在子活动中简单地锁定后退按钮可能更容易,因此用户必须启动应用才能返回。可能有一些(非推荐的)方法来获得对你父母活动的引用,并将它存储在应用程序中,并且这样做,如果你真的需要,但我确信每个人和他们的母亲都会告诉你这是一个可怕的想法。

相关问题