Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.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
Java 如何从调用堆栈中删除特定活动的以前实例_Java_Android_Android Studio - Fatal编程技术网

Java 如何从调用堆栈中删除特定活动的以前实例

Java 如何从调用堆栈中删除特定活动的以前实例,java,android,android-studio,Java,Android,Android Studio,我的活动流程类似于A->B->C->B 当我按下活动C中的重置按钮时,我转到活动B Button reset=(Button) findViewById(R.id.button3); reset.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view){ Intent intent

我的活动流程类似于A->B->C->B

当我按下活动C中的重置按钮时,我转到活动B

Button reset=(Button) findViewById(R.id.button3);
        reset.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view){
                Intent intent = new Intent(C.this, B.class);
                startActivity(intent);
                finish();
            }
        });

但是,当我在活动C中按下reset按钮时,我想销毁活动B的前一个实例,这样我的堆栈就变为 [A | C | B]
前往活动C时,我无法完成活动B,因为我可能必须返回到B。

您可以使用广播完成顺序,当在活动a中接收到完成时,添加标志\u活动\u清除\u顶部当您启动B表单C时,它将删除不需要的B

Intent i = new Intent(this, B.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);