我有三项活动, a,b,c 。活动 b 将启动活动 c 。在活动 c 时按后退键,活动 c 将完成(),活动 b 将仅显示因为它离开了。
这不是那么难,我想要做的是当我完成()活动 c 时,我想同时完成()活动 b 为了显示活动 a 。
有没有人知道如何完成其他活动的活动?
答案 0 :(得分:1)
实现这一最佳方法是在结合中使用startActivityForResult和onActivityResult。
从活动A,开始活动B,然后从B开始活动C,使用startActivityForResult()
获得结果在活动C中,当用户触发或Destroy()
时设置一个结果,通知A也完成,
在C。中调用finish()。
当B从C收到结果时,B也会自己调用finish()。
在父活动中,在触发子活动时,使用以下命令: -
startActivityForResult(intent,variable(int));
并在活动B中以下列方式覆盖onActivityResult方法: -
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode==2){
finish();
}
}
现在,在子活动C中,以下列方式覆盖onStop和onDestroy: -
protected void onStop() {
setResult(2);
super.onStop();
}
@Override
protected void onDestroy() {
setResult(2);
super.onDestroy();
}
答案 1 :(得分:0)
是的,在转移到活动C之前完成活动B.因此,下次当您直接点击确认按钮时,它将移动到活动A,如下面的代码:
Intent in = new Intent(B.class, C.class);
startActivity(in)
finish();