Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
远程完成Android活动_Android_Android Intent_Android Activity - Fatal编程技术网

远程完成Android活动

远程完成Android活动,android,android-intent,android-activity,Android,Android Intent,Android Activity,我有三项活动,a、b、c。活动b将启动活动c。在活动c中,当我按下后退键时,活动c将完成(),而活动b将显示为原来的状态 这并不难,我想做的是当我完成()活动c时,我想同时完成()活动b,以显示活动a 有人知道如何从另一个活动中完成一个活动吗?是的,在移动到活动C之前完成活动B。因此,下次直接单击确认按钮时,它将移动到活动A,如下代码所示: Intent in = new Intent(B.class, C.class); startActivity(in)

我有三项活动,a、b、c。活动b将启动活动c。在活动c中,当我按下后退键时,活动c将完成(),而活动b将显示为原来的状态

这并不难,我想做的是当我完成()活动c时,我想同时完成()活动b,以显示活动a


有人知道如何从另一个活动中完成一个活动吗?

是的,在移动到活动C之前完成活动B。因此,下次直接单击确认按钮时,它将移动到活动A,如下代码所示:

      Intent in = new Intent(B.class, C.class);
       startActivity(in)
        finish();

是的,在移动到活动C之前,请完成活动B。因此,下次直接单击确认按钮时,它将移动到活动A,如以下代码所示:

      Intent in = new Intent(B.class, C.class);
       startActivity(in)
        finish();

要实现这一点,最好的方法是在共轭中使用startActivityForResult和onActivityResult

从活动A开始活动B,然后从B开始活动C,使用startActivityForResult()获得结果

在活动C中,当用户触发back或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();
}

要实现这一点,最好的方法是在共轭中使用startActivityForResult和onActivityResult

从活动A开始活动B,然后从B开始活动C,使用startActivityForResult()获得结果

在活动C中,当用户触发back或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();
}

我想做的是在后退按钮上显示活动B,在确定按钮上显示活动A。根据上面的代码,当你单击后退按钮时,它将直接从活动C重定向到活动A,并完成();当你点击后退按钮时活动C,否则你可能会得到一些例外。我想做的是在后退按钮上显示活动B,在确定按钮上显示活动A。从上面的代码中,当你点击后退按钮时,它将直接从活动C重定向到活动A,并完成();当你点击后退按钮时,活动C将停止,否则你可能会得到一些例外